1

PHP と CURL および新しい 1.1 API を使用して、特定のユーザーから最新のツイートを取得しようとしています。Twitter Web サイトで新しいアプリを作成し、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関数に間違ったオプションを渡しているに違いないと思いますが、わかりません.

前もって感謝します。

4

3 に答える 3

3

ここでは、twitterapi1.1とcurlを使用してツイートを取得する例を見つけることができます

TwitterAPIバージョン1.1でuser_timelineを取得するための最も簡単なPHPの例

于 2012-12-22T23:33:54.267 に答える
0

Twitter 1.1 REST API 用の非常にシンプルな php ラッパー

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

于 2013-11-03T15:55:28.713 に答える