2014-03-12 43 views
1

我使用这个代码来生成访问令牌:php twitter api - 如何获取访问令牌?

if(isset($_POST['login_tw'])) { 

$request_token = $connection->getRequestToken($_REQUEST['oauth_verifier']); 

    if($request_token) { 
     $token = $request_token['oauth_token']; 
     $_SESSION['request_token'] = $token ; 
     $_SESSION['request_token_secret'] = $request_token['oauth_token_secret']; 

     if($connection->http_code = 200) 
     { 
       $url = $connection->getAuthorizeURL($token); 

       header('Location: ' . $url); 

       $fp=fopen('config.php','w'); 
       fwrite($fp, '<?php 
       $acsstok = "' . $_SESSION['request_token'] . '"; 
       $scrtaccstok = "' . $_SESSION['request_token_secret'] . '"; 
       ?>'); 
       fclose($fp);      

     } 

但生成的令牌不能用于任何东西,尤其是让其他用户的追随者清单。

而访问令牌格式不喜欢有领先的数字像这样从“应用程序管理页面产生的一个:

340708911-xVcFcjVjkdksfdrjhgjdfyhjdfhjdhdfkdjgkfvaJ

但它有一个像这样没有领先的数字:

xVcFcjVjkdksfdrjhgjdfyhjdfhjdhdfkdjgkfvaJ

上面的代码出现了什么问题,应该怎么做才能在我的应用程序中使用生成的访问令牌?

有人可以帮我吗?我花了1天的时间来寻找解决方案。

问候

回答

2

对于一个Twitter用户成为你的应用程序的用户,你必须问他们的许可。

一旦您拥有request_token,您需要将用户重定向到Twitter上的授权屏幕,他们可以批准您的应用程序,如下所述:Obtaining Access Tokens

在授予对您的应用程序的访问权限后,用户将被重定向回您的应用程序,特别是在您指定的回调URL处。在该页面上,您需要捕获Twitter发送给您的信息(oauth_verifier和原始request_token),然后向Twitter发送另一个请求以交换request_token以获得access_token。通过这个access_token,与您所提到的类似(使用用户ID前缀),您将能够对Twitter API执行已验证的请求。

如果您想在应用程序中集成Twitter时使用现有的第三方PHP库并简化这些认证步骤,请检查Twitter Libraries

+0

谢谢。你想给我一个关于如何使用twitteroauth获取访问令牌的详细例子吗?他们的文档很混乱。 – KeepMove

+1

我自己还没有使用[twitteroauth](https://github.com/abraham/twitteroauth),但是库的作者Abraham Williams创建了一个[带有PHP示例的GitHub存储库](https:// github的.com /亚伯拉罕/ twitteroauth的-例子)。你也可以检查Matt Harris的[tmhOAuth](https://github.com/themattharris/tmhOAuth)和[一些对应的例子](https://github.com/themattharris/tmhOAuthExamples)。 –