2

次のコードを使用して、クライアントの Web サイトに最新のツイートのリストを表示するように要求します。

if (file_exists( 'twitter.json' ))
{
    $file = file_get_contents( 'twitter.json');
    $data = json_decode($file);
    if ($data->timestamp > (time() - 60 * 60) ) // if timestamp is NOT older than an hour
    {
        $twitter_result = $data->twitter_result;
    }
    else
    {
        $twitter_result = file_get_contents('http://api.twitter.com/1/statuses/user_timeline.json?q=@Twitter&rpp=1&screen_name=Twitter&count=1');
        if( $twitter_result === false) /* something went wrong with API request */
        {
            $twitter_result = $data->twitter_result;
        }
        else
        {
            $json = array ('twitter_result' => $twitter_result, 'timestamp' => time());
            file_put_contents( 'twitter.json', json_encode($json) );
        }
    }

    header("content-type:application/json");
    if($_GET['callback'])
    {
        echo $_GET['callback'] . '(' . $twitter_result . ')';
    }
    else
    {
        echo $twitter_result;
    }

    exit;
}
else
{
    echo 'twitter.json does not exist!';

    exit;
}

ただし、1.0 API は減価償却されているため、機能しなくなります。1.1 API で動作するように試みましたが、ドキュメントに記載されているように認証を実装する方法がわかりません。誰かが私を正しい方向に向けることができますか? 可能であれば、上記のコードの変更を最小限に抑えたいと考えています。ありがとう。

私は例えば試してみました:

https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=2&oauth_token=123&oauth_token_secret=123

123 はトークンとシークレットですが、これも機能しませんか?

4

2 に答える 2

3

このライブラリをチェックしてください STTwitter

メソッドを使用できます

- (void)getUserTimelineWithScreenName:(NSString *)screenName
                     successBlock:(void(^)(NSArray *statuses))successBlock
                       errorBlock:(void(^)(NSError *error))errorBlock;

新しいバージョンの API (1.1) で動作します

于 2013-09-18T07:44:30.130 に答える
2

変更する必要があるのは、次の URL だけです。

http://api.twitter.com/1/statuses/user_timeline.json?q=@Twitter&rpp=1&screen_name=Twitter&count=1

https://api.twitter.com/1.1/statuses/user_timeline.json?q=@Twitter&rpp=1&screen_name=Twitter&count=1

認証は 1.1 に追加されました。これを機能させるには、アプリケーションを登録する必要があります。

于 2013-09-09T00:13:51.217 に答える