用curl获取Twitter用户时间线

时间:2013-06-09 20:39:45

标签: php curl twitter-oauth

我想get the Twitter timeline,但我收到错误Could not authenticate you","code":32.

这是我的脚本:     

$base = '';
$base .= 'GET';
$base .= '&';
$base .= rawurlencode('https://api.twitter.com/1.1/statuses/user_timeline.json');
$base .= '&';
$base .= rawurlencode($oauth_hash);

$key = '';
$key .= rawurlencode('MY_CONSUMER_SECRET');
$key .= '&';
$key .= rawurlencode('MY_ACCESS_TOKEN_SECRET');

$signature = base64_encode(hash_hmac('sha1', $base, $key, true));
$signature = rawurlencode($signature);

$oauth_header = '';
$oauth_header .= 'oauth_consumer_key="MY_CONSUMER_KEY", ';
$oauth_header .= 'oauth_nonce="' . time() . '", ';
$oauth_header .= 'oauth_signature="' . $signature . '", ';
$oauth_header .= 'oauth_signature_method="HMAC-SHA1", ';
$oauth_header .= 'oauth_timestamp="' . time() . '", ';
$oauth_header .= 'oauth_token="MY_ACCESS_TOKEN", ';
$oauth_header .= 'oauth_version="1.0", ';

$curl_header = array("Authorization: OAuth {$oauth_header}", 'Expect:');
$curl_request = curl_init();

curl_setopt($curl_request, CURLOPT_HTTPHEADER, $curl_header);
curl_setopt($curl_request, CURLOPT_HEADER, false);
curl_setopt($curl_request, CURLOPT_URL, 'https://api.twitter.com/1.1/statuses/user_timeline.json');
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, false);

$json = curl_exec($curl_request);
curl_close($curl_request);
?>

我需要更改什么才能使其正常工作?

谢谢。乌利

1 个答案:

答案 0 :(得分:0)

看看这个有用的博客文章“通过PHP,OAuth使用Twitter的1.1 API”:

http://blog.jacobemerick.com/web-development/working-with-twitters-api-via-php-oauth/