我正在尝试使用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函数,但我可以'弄明白了。
提前致谢。
答案 0 :(得分:3)
在这里,您可以找到使用twitter api 1.1和curl
获取推文的示例Simplest PHP example for retrieving user_timeline with Twitter API version 1.1
答案 1 :(得分:0)
我花了一些时间才开始工作,但我终于做了并将一个独立的课程和演示推送到GitHub,这应该很容易理解。
答案 2 :(得分:0)
Twitter 1.1 rest api的简单php包装器