无法使用Twitter API 1.1和PHP获取最新推文

时间:2012-12-13 14:48:10

标签: php curl twitter twitter-oauth

我正在尝试使用PHP和CURL以及新的1.1 API从特定用户获取最新推文,我在Twitter网站上创建了我的新应用程序并转到OAuth工具选项卡以生成签名并根据页面生成以下curl命令:

curl --get 'https://api.twitter.com/1.1/statuses/user_timeline.json?count=2&screen_name=twitter' --header 'Authorization: OAuth oauth_consumer_key="Waqd223QDuge6l9UboBldg", oauth_nonce="8a9beae863838b0ba2bc6ac03bc9757e", oauth_signature="u2PrZ5g14HGb39pHoYl9azHp6vg%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1355408402", oauth_token="171967067-lyLujNed9QyVBfmlfAkFXiUt5KIQkqrCMwg6utFc", oauth_version="1.0"'

在我的终端中工作正常,但是当我尝试在PHP中复制它时,我得到一个“无法验证你”的错误,这是我到目前为止所做的:

$options = array(
    URLOPT_HTTPHEADER      => array('Authorization: OAuth oauth_consumer_key="Waqd223QDuge6l9UboBldg", oauth_nonce="8a9beae863838b0ba2bc6ac03bc9757e", oauth_signature="toLnir5cHUUvEj8X29SdzjlOTXc%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="' . time() . '", oauth_token="171967067-lyLujNed9QyVBfmlfAkFXiUt5KIQkqrCMwg6utFc", oauth_version="1.0"'),
    CURLOPT_HEADER         => false,
    CURLOPT_URL            => 'https://api.twitter.com/1.1/statuses/user_timeline.json?count=2&screen_name=twitter',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false
);

$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);
curl_close($feed);

$twitter_data = json_decode($json);

var_dump($twitter_data);

我唯一要改变的是oauth_timestamp,我使用time()函数来获取当前时间,我想我必须将错误的选项传递给curl函数,但我可以'弄明白了。

提前致谢。

3 个答案:

答案 0 :(得分:3)

在这里,您可以找到使用twitter api 1.1和curl

获取推文的示例

Simplest PHP example for retrieving user_timeline with Twitter API version 1.1

答案 1 :(得分:0)

我花了一些时间才开始工作,但我终于做了并将一个独立的课程和演示推送到GitHub,这应该很容易理解。

https://github.com/skaterdav85/twitter-library

答案 2 :(得分:0)

Twitter 1.1 rest api的简单php包装器

https://github.com/vojant/Twitter-php