PHP 网站 - Twitter API + Abraham Oauth(无法找到 x_rate_limit_remaining)
PHP Website - Twitter API + Abraham Oauth (Unable to find x_rate_limit_remaining )
我正在开发一个简单的函数来获取我的 Twitter 关注者的 ID。我可以使用 oauth 登录并获得结果,但我无法获得 headers 信息,因此我无法使用 headers 中的 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) 但是,为什么我的headers(D2) 数组返回为空?我错过了什么吗?
(问题也发布在 https://github.com/abraham/twitteroauth/issues/469)
您在发出请求之前尝试获取 headers 是一个非常小的错误。试试这个代码(我正在从代码中删除所有不需要的东西)
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->get('followers/ids');
调用之后调用 $connection->getLastXHeaders();
让事情正常工作。
我正在开发一个简单的函数来获取我的 Twitter 关注者的 ID。我可以使用 oauth 登录并获得结果,但我无法获得 headers 信息,因此我无法使用 headers 中的 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) 但是,为什么我的headers(D2) 数组返回为空?我错过了什么吗? (问题也发布在 https://github.com/abraham/twitteroauth/issues/469)
您在发出请求之前尝试获取 headers 是一个非常小的错误。试试这个代码(我正在从代码中删除所有不需要的东西)
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->get('followers/ids');
调用之后调用 $connection->getLastXHeaders();
让事情正常工作。