1

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

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 函数,但我无法弄清楚。

提前致谢。

4

3 回答 3

3

在这里您可以找到使用 twitter api 1.1 和 curl 获取推文的示例

使用 Twitter API 1.1 版检索 user_timeline 的最简单 PHP 示例

于 2012-12-22T23:33:54.267 回答
0

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

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

于 2013-09-24T09:25:34.627 回答
0

Twitter 1.1 rest api 的非常简单的 php 包装器

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

于 2013-11-03T15:55:28.713 回答