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

トップ >ドキュメント >SNS連携(Obj-C):Twitter連携

SNS連携(Obj-C)

Twitter連携

概要

このページでは、Twitterアカウントを利用した会員登録や、
既存アカウントにTwitter認証情報を紐付ける設定について説明していきます。
※2020年5月現在、Fabricサービス終了のため、本機能は正常に動作していません。機能改修を進めておりますが、改修完了しましたら、Informationブログにより告知およびドキュメントを合わせて更新しますので、今しばらくお待ちください。

事前準備

mobile backendの会員情報にTwitterアカウントを利用する場合は、
アクセストークンなどの認証情報を取得するためにTwitterアカウントでのログイン・ログアウトをアプリに実装する必要があります。

Twitterアカウントでのログイン・ログアウトを実装するためには、以下の準備が必要です。

  • Fabricの無料アカウント作成および、アプリの登録
    • アプリの登録は下記のTwitter Kitインストール時にfabric側が自動作成するものを利用できます
  • Xcodeプロジェクトへの Twitter Kitのインストール
    • こちらのドキュメントを参考に、Twitter Kitをインストールしてください
  • Twitterアカウントでのログイン・ログアウトを実装
    • こちらのドキュメントを参考に、TwitterでのOAuth認証を実装してください
  • アクセストークンなどを取得
    • 後述のドキュメントで解説します

管理画面での設定

アプリ設定のSNS連携を開き、Twitter連携を許可してください。
また、fabricのダッシュボードやTwitterの開発者サイトで発行された、Twitterアプリのコンシューマキーを入力してください。

アプリでの実装

会員登録を行う

会員登録を行う場合、Twitterへのログインとアプリ連携が完了したあとで呼び出されるブロック内で、
mobile backendに会員を登録していきます。
Twitterの認証情報でmobile backendの会員登録を行うには、signUpWithTwitterToken:withBlock メソッドを利用します。

TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {

    //Twitterへのログインとアプリ連携が完了したあとの処理
    if (session) {

        //mobile backend への会員登録を行うために認証情報を作成
        NSDictionary *kitInfo = [[[[[NSBundle mainBundle] objectForInfoDictionaryKey:@"Fabric"] objectForKey:@"Kits"] objectAtIndex:0] objectForKey:@"KitInfo"];
        NSString *consumerKey = [kitInfo objectForKey:@"consumerKey"];
        NSString *consumerSecret = [kitInfo objectForKey:@"consumerSecret"];
        NSDictionary *twitterInfo = @{@"oauth_consumer_key": consumerKey,
                                      @"consumer_secret": consumerSecret,
                                      @"id": session.userID,
                                      @"oauth_token": session.authToken,
                                      @"oauth_token_secret": session.authTokenSecret,
                                      @"screen_name": session.userName};

        //Twitterの認証情報を利用して会員登録
        NCMBUser *user = [NCMBUser user];
        [user signUpWithTwitterToken:twitterInfo withBlock:^(NSError *error) {
            if (error){
                //会員登録に失敗した場合の処理
            } else {
                //会員登録に成功した場合の処理
            }
        }];
    } else {
        //エラー処理
    }
}];
logInButton.loginMethods = TWTRLoginMethodWebBased;

Twitterの認証情報を既存会員に紐付ける

Twitterの認証情報を既存会員に紐付けるには、linkWithTwitterToken:withBlock メソッドを利用します。

//ログイン中の会員情報を取得
NCMBUser *mbUser = [NCMBUser currentUser];
if(!mbUser){
    mbUser = [NCMBUser user];
}

//ログイン中の会員にTwitterの認証情報を紐付ける
//twitterInfoは、Twitterの認証情報で会員登録する時と同じもの
[mbUser linkWithTwitterToken:twitterInfo withBlock:^(NSError *error) {
    if (error){
        //エラーがあった場合の処理
    } else {
        //認証情報の紐付けが完了したあとの処理
    }
}];

unlink:withBlock メソッドで、指定した認証情報だけをログイン中の会員情報から削除することができます。

// 認証情報の削除
[mbUser unlink:@"twitter" withBlock:^(NSError *error) {
    if (error){
        //認証情報の削除に失敗した場合の処理
    } else {
        //認証情報の削除後の処理
    }
}];

ログアウトする

ログアウトを行う場合は、mobile backendの会員としてのログアウト処理と、Twitter認証情報の削除が必要です。

// mobile backendのログアウト処理
[NCMBUser logOutInBackgroundWithBlock:^(NSError *error) {
    if (error){
        //エラー処理
    } else {
        // アプリ内のTwitter認証情報を削除する
        //userIdはプロパティで保持するか、currentUserのauthDataから取得
        [[[Twitter sharedInstance] sessionStore] logOutUserID:userId];
    }
}];

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

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

ページの先頭へ