2016-05-19 56 views
3

我正在开发一个简单的函数来获取我的推特追随者的ID。我可以使用oauth登录并获取结果,但是我无法获取标题信息,因此我可以使用标题中的x_rate_limit_remaining值。 功能是:PHP网站 - Twitter的API +亚伯拉罕Oauth(无法找到x_rate_limit_remaining)

function get_id_of_followers() { 
     $access_token = $_SESSION['access_token']; 
     $connection = new TwitterOauth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); 
     $data0 = get_class_methods($connection); 
     echo "<pre> D0 ", print_r($data0, true), "</pre>"; 
     $data1 = $connection->getLastXHeaders(); 
     echo "<pre> D1 ", print_r($data1, true), "</pre>"; 
     $data2 = $connection->getLastXHeaders()["x_rate_limit_remaining"]; 
// x_rate_limit_remaining is an entity in the headers that I am able to see with my python scripts in headers output. 
     echo "<pre> D2 ", $data2, "</pre>"; 
     $data3 = $connection->get('followers/ids'); 
     echo "<pre> D3 ", print_r($data3, true), "</pre>"; 
    } 

从函数的输出如下:

D0 
Array 
(
    [0] => __construct 
    [1] => setOauthToken 
    [2] => getLastApiPath 
    [3] => getLastHttpCode 
    [4] => getLastXHeaders 
    [5] => getLastBody 
    [6] => resetLastResponse 
    [7] => url 
    [8] => oauth 
    [9] => oauth2 
    [10] => get 
    [11] => post 
    [12] => delete 
    [13] => put 
    [14] => upload 
    [15] => setTimeouts 
    [16] => setDecodeJsonAsArray 
    [17] => setUserAgent 
    [18] => setProxy 
    [19] => setGzipEncoding 
) 


D1 
Array 
(
) 


D2 

D3 
stdClass Object 
(
    [ids] => Array 
     (
      [0] => 730017479360045056 
      [1] => 4716372642 
      [2] => 709411090980020224 
      [3] => 4905437529 
      [4] => 709964576868200449 
      [5] => 228648311 
      [6] => 3190604329 
      [7] => 4298659035 
      [8] => 378112124 
      [9] => 4554579372 
      [10] => 3845238492 
      [11] => 3009354738 
records retrived upto 5000 

现在我能得到的回应(D3),但是,为什么我的头(D2)阵列返回为空?我错过了什么吗? (问题也发布在https://github.com/abraham/twitteroauth/issues/469

回答

3

您在提出请求之前尝试获取标头时犯了一个很小的错误。试试这个代码(我从代码中删除所有不必要的东西)

function get_id_of_followers() { 
     $access_token = $_SESSION['access_token']; 
     $connection = new TwitterOauth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); 
     $Body = $connection->get('followers/ids'); 
     $Header = $connection->getLastXHeaders(); 
     echo "<pre> Body: ", print_r($Body, true), "</pre>"; 
     echo "<pre> Header: ", print_r($Header, true), "</pre>"; 
     echo "<pre> x_rate_limit_remaining: ", $Header[x_rate_limit_remaining], "</pre>"; 
} 

所有你所要做的就是打电话给$connection->getLastXHeaders();$connection->get('followers/ids');电话后的事情工作。

+0

怪胎!这件事情就像一个魅力..! 我正在尝试在进行http调用之前打印http标题。什么是绝对的错误。 –

相关问题