サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >チュートリアル(Android):Twitter連携を行う

ドキュメント内検索

Twitter連携を行う

概要

ニフティクラウドmobile backend SDK for Android(以下、本SDK)には、
アプリケーションにTwitterの認証を用いるための簡単な方法を提供しています。
数行のコードで、Twitterを用いてログイン・会員登録を行うことができます。

初期設定

mobile backendのアカウント登録がまだの方は、こちらから無料アカウントの登録を行ってください。

  • Twitter Developersにてアプリケーション登録を行います。
  • ダッシュボードの左メニューでアプリ設定をクリックし、Twitter連携の使用を許可するとともに、1.で登録したアプリケーションのコンシューマキーを設定します。
    Twitter連携設定画面
  • http://twitter4j.org/ja/index.htmlよりTwitter4Jライブラリを取得し、作成するアプリケーションに導入します。

パーミッション設定

次にあなたのアプリケーションにTwitter連携をするためのパーミッションを付与する必要があります。
これらのパーミッションをAndroidManifest.xmlファイルの<application>タグの前に追加して下さい。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

mobile backendとTwitterのAPIキー追加

あなたのアプリと、mobile backendが連携するために、APIキーのやりとりが必要になりますので、アプリケーションキーを追加します。
また、TwitterのAPIを利用するために、Twitterコンシューマーキーを追加する必要があります。
あなたのアプリケーションクラスのonCreateメソッドに次の処理を追加して下さい。

NCMB.initialize(this, "YOUR_APP_KEY", "YOUR_CLIENT_KEY");
// Twitterのコンシューマキー、コンシューマシークレットの設定
NCMBTwitterUtils.initialize("TWITTER_CONSUMER_KEY", "TWITTER_CONSUMER_SECRET");

「YOUR_APP_ID」と「YOUR_CLIENT_KEY」についてはmobile backendでアプリを作成した際に表示される、アプリケーションキーとクライアントキーを設定するようにして下さい。
「TWITTER_CONSUMER_KEY」と「TWITTER_CONSUMER_SECRET」には、Twitter Developersで取得したキーとシークレットを設定してください。

会員登録とログイン

NCMBTwitterUtilsのlogin()を実行することで、会員登録を行うことができます。また、既に会員登録済みだった場合は、ログインのみを実行することが可能です。
login()実行時には、Twitterアカウントのログインを促されるのでアカウント情報を入力してください。

NCMBTwitterUtils.logIn(this, new LogInCallback() {
    @Override
    public void done(NCMBUser user, NCMBException e) {
        if (e != null) {
            // エラー
        } else {
            // 成功
            if (user == null) {
                // Twitterログインをキャンセル
                Log.d(TAG, "twitter login cancel.");
            } else if (user.isNew()) {
                // Twitterログインで会員登録
                Log.d(TAG, "twitter login success(isNew).");
            } else {
                // Twitterでログイン
                Log.d(TAG, "twitter login success.");
            }
        }
    }
});

既存会員へのTwitter情報の紐づけと解除

もしも、既存の会員にTwitter情報を紐づけしたい場合や、紐づけた情報を解除したい場合には、link()とunlink()を実行することで紐づけと解除が可能です。
なお、紐づけようとしているTwitter情報が既に別の会員に設定されていたら、紐づけを行えません。

// Twitter情報の紐づけ
NCMBTwitterUtils.link(user, this, new SaveCallback() {
    @Override
    public void done(NCMBException e) {
        if (e != null) {
            // エラー
        } else {
            // 成功
        }
    }
});
// Twitter情報の解除
NCMBTwitterUtils.unlinkInBackground(user, new SaveCallback() {
    @Override
    public void done(NCMBException e) {
        if (e != null) {
            // エラー
        } else {
            // 成功
        }
    }
});

Twitter APIの実行

NCMBTwitterUtils.login()を実行し、Twitter認証を実行したあとは、NCMBTwitterUtils.getTwitter().signRequest()を使用し Twitter APIを実行することが可能です。

使用例1:タイムラインの取得
// 使用例1:タイムラインの取得
HttpClient client = new DefaultHttpClient();
HttpGet getTimeline = new HttpGet("https://api.twitter.com/1.1/statuses/home_timeline.json");
NCMBTwitterUtils.getTwitter().signRequest(getTimeline);
HttpResponse response = client.execute(getTimeline);

使用例2:ツイートの実行
// 使用例2:ツイートの実行
HttpClient client = new DefaultHttpClient();
HttpPost postUpdate = new HttpPost("https://api.twitter.com/1.1/statuses/update.json?status=sendTweet");
NCMBTwitterUtils.getTwitter().signRequest(postUpdate);
HttpResponse response = client.execute(postUpdate);

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ