我目前正在尝试用OAuth将Twitter集成到我正在开发的PHP Web应用程序中。
我有一个HTML页面,提供了一个链接到Twitter应用程序认证URL,它似乎工作正常,并显示认证屏幕。
以下是调用函数的代码。
if (!isset($_GET['oauth_token']))
{
//include("phpHandler/twitterLib/secret.php");
getTwitterURL($consumer_key, $consumer_secret);
}
consumer_key和consumer_secret被包含在一个php文件中。
以下是获取Twitter授权URL的代码。
function getTwitterUrl($consumer_key, $consumer_secret)
{
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$url = $twitterObj->getAuthorizationUrl();
echo '<a class="linkButtons" href="'.$url.'">Add Twitter</a>';
}
这将重定向回页面,然后我调用身份验证方法来检索信息,例如 Twitter 用户名。以下是执行身份验证的功能:
function authenticate($consumer_key, $consumer_secret)
{
require ("twitterLib/EpiCurl.php");
require ("twitterLib/EpiOAuth.php");
require ("twitterLib/EpiTwitter.php");
require ("twitterLib/secret.php");*/
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$twitterObj->setToken($_GET['oauth_token']);
$token = $twitterObj->getAccessToken();
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
$token = $twitterObj->getAccessToken();
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
$_SESSION['ot'] = $token->oauth_token;
$_SESSION['ots'] = $token->oauth_token_secret;
$twitterInfo= $twitterObj->get_accountVerify_credentials();
echo '<pre>';
print_r($twitterInfo->response);
}
echo和print_r用于展示从Twitter返回的响应信息。
我在数组中得到了以下错误输出:
Array ( [error] => 无效/过期令牌 [request] => /account/verify_credentials.json )
我该如何解决这个错误呢?我不知道为什么会无效或者过期,我已经关闭了浏览器并重新打开,但是还是出现了同样的错误。
感谢您能提供的任何帮助。
$comsumer_key
和$consumer_secret
。 - Erik//include("phpHandler/twitterLib/secret.php");
被注释掉了?难道不是从那里获取$consumer_key
和$consumer_secret
的地方吗? - Erik