サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

Twitterの REST APIにアクセスする

The TwitterCore キットでは認証済みTwitter APIリクエストを作成するTwitterApiClientを使用することができます。 現在は以下をサポートしています:

  • ツイートの状態
    • mentionsTimeline
    • userTimeline
    • homeTimeline
    • retweetsOfMe
    • show
    • lookup
    • update
    • retweet
    • destroy
  • お気に入り
    • List
    • Create
    • Destroy
  • 検索
    • Tweets


アプリではTwitterApiClientを使うためのセッションを取得しなければなりません。 TwitterセッションはユーザーがTwitter にログインすることで取得できます。 ユーザーのログインなしでリクエスト作成するために、ゲスト認証を使ってAppセッションを取得することができます。

注意

Appセッションを使ったTwitterApiClient では、ユーザーを識別する情報を必要としないAPIリクエストのみ作成できます。 例えば、Appセッションではツイートをすることができません。


Appセッションを作成する

TwitterCore.getInstance().logInGuest(new Callback() {
      @Override
      public void success(Result appSessionResult) {
                // REST API REQUEST...
      }

      @Override
      public void failure(TwitterException e) {
                // OOPS

      }
});

Appセッション(上記のような)もしくはTwitterセッションを使って認証が感慮すると、TwitterApiClient を使ってAPI リクエストを作ることができるようになります:



ツイート

TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();
// Can also use Twitter directly: Twitter.getApiClient()
StatusesService statusesService = twitterApiClient.getStatusesService();
statusesService.show(524971209851543553L, null, null, null, new Callback<Tweet>() {
    @Override
    public void success(Result<Tweet> result) {
        //Do something with result, which provides a Tweet inside of result.data
    }

    public void failure(TwitterException exception) {
        //Do something on failure
    }
});


拡張する

TwitterApiClientは誰でも拡張可能で、Twitter の認証エンドポイントを追加する拡張も行えます。

 import com.twitter.sdk.android.core.Callback;
    import com.twitter.sdk.android.core.Result;
    import com.twitter.sdk.android.core.TwitterApiClient;
    import com.twitter.sdk.android.core.TwitterException;
    import com.twitter.sdk.android.core.TwitterSession;
    import com.twitter.sdk.android.core.models.User;
    import retrofit.http.Query;

    class MyTwitterApiClient extends TwitterApiClient {
        public MyTwitterApiClient(TwitterSession session) {
            super(session);
        }

        /**
         * CustomService に定義したエンドポイントを設定する
         */
        public CustomService getCustomService() {
            return getService(CustomService.class);
        }
    }

    //  users/show サービスエンドポイントの例
    interface CustomService {
        @GET("/1.1/users/show.json")
        void show(@Query("user_id") long id, Callback<User> cb);
    }

注意

TwitterCore キットでは Retrofit を使ってインタフェースを認証済みエンドポイントに変換しています。 追加するエンドポイントはRetrofitで要求される形式に準拠する必要があります。 依存関係を含めて正常にコンパイルできるのであれば、このキットでは必要に応じてOkHTTP を使用することができます。 OkHTTP ではより安定したHTTPスタック、より速いリトライメカニズム、SPDYのサポートが使えるようになります。