我正在尝试使用 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 函数,但我无法弄清楚。
提前致谢。