首先,首先是代码:
$consumer_key = '*';
$consumer_secret = '*';
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$oauth_token = $_GET['oauth_token'];
if($oauth_token == ""){
echo "EFF";
$url = $twitterObj->getAuthenticateUrl();
echo "<div style='width:200px;margin-top:200px;margin-left:auto;margin-right:auto'>";
echo "<a href='$url'>Sign In with Twitter</a>";
echo "</div>";
}else{
$twitterObj->setToken($oauth_token);
$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('/account/verify_credentials.json');
$res = $twitterInfo->response; //valid session
echo "<strong>".$res['screen_name'] . " is Connected!</strong><br/>";
}
它使用最新的EpiTwitter库。出于某种原因,每次我尝试运行脚本时都会得到:
致命错误:/var/www/twt/EpiOAuth.php:432中未捕获的异常'EpiOAuthUnauthorizedException'堆栈跟踪:#0 /var/www/twt/EpiOAuth.php(404):EpiOAuthException :: raise(Object( EpiCurlManager),false)#1 /var/www/twt/EpiOAuth.php(45):EpiOAuthResponse-&gt; __ get('oauth_token')#2 /var/www/twt/twt.php(18):EpiOAuth-&gt ; getAuthenticateUrl()#main {main}在第432行的/var/www/twt/EpiOAuth.php中抛出
答案 0 :(得分:0)
https://github.com/jmathai/twitter-async/issues/73
我发现如果我这样做,下面的错误消失了。
try{
$twitterInfo = $twitterObj->get('/account/verify_credentials.json');
$res = $twitterInfo->response; //valid session
} catch(EpiTwitterException $e){
// this catches all of the EpiTwitter* exceptions
}
答案 1 :(得分:0)
当我的consumer_key和consumer_secret出错时,这发生在我身上。或者,相反,值是正确的,但变量名称是不同的,因为我粘贴了:
$consumer_key = 'R4kZPHA0xxxxxxxxCtFw';
$consumer_secret = 'blpXdbnxxxxxxxxxxVtuBklFcZ8SA';
$token = '15609xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWL9hH74pEEl0H';
$secret= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxh7IlZ4kMP052Xr0';
$Twitter = new EpiTwitter($consumerKey, $consumerSecret);
...变量赋值行和对象实例化行中的变量名称不同。
但是,只需仔细检查您使用的$ consumer_key和$ consumer_secret值实际上是您的应用:
https://dev.twitter.com/apps/xxxxxxx/show
我尝试过不同的Twitter oAuth库,这个库看起来最有用。但epicurl似乎并没有非常优雅地处理轻微的句法错误。