SNS連携(Obj-C)
Facebook連携
Contents |
概要
このページでは、Facebookアカウントを利用した会員登録や、
既存アカウントにFacebook認証情報を紐付ける設定について説明していきます。
事前準備
mobile backendの会員情報にFacebookアカウントを利用する場合は、
アクセストークンなどの認証情報を取得するためにFacebookアカウントでのログイン・ログアウトをアプリに実装する必要があります。
Facebookアカウントでのログイン・ログアウトを実装するためには、以下の準備が必要です。
- Facebookアカウントの作成と開発者サイトでのアプリ登録
- アプリの登録は、下記のクイックスタート実施時にも行うことができます
- クイックスタートを実施して、SDKのインストールとXcodeプロジェクトの設定を行う
管理画面での設定
「アプリ設定」>「SNS連携」を開きます。
連携の許可にチェックを入れた上で、Facebookの開発者向けサイトで発行されたアプリIDを入力してください。
アプリ側でFacebook認証を実装する
会員登録を行う
会員登録を行う場合、Facebookへのログインとアプリ連携が完了したあとで呼び出されるブロック内で、
mobile backendに会員を登録していきます。
Facebookの認証情報でmobile backendの会員登録を行うには、signUpWithFacebookToken:withBlock メソッドを利用します。
以下のサンプルコードでは、パーミッションの設定は行わずにシンプルなFacebookへのログインを実装したうえで、mobile backendへの会員登録を行っています。
Facebookのパーミッション設定については以下をご覧ください。
(参考:パーミッションについてのドキュメント)
//Facebookへのログインが完了したあとのデリゲートメソッド
- (void) loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error: (NSError *)error{
if (error){
//Facebookログインでのエラーが発生した場合の処理
} else {
// mobile backend会員登録するための認証情報を作成
NSDictionary *facebookInfo = @{@"id":result.token.userID,
@"access_token":result.token.tokenString,
@"expiration_date":result.token.expirationDate};
//会員のインスタンスを作成
NCMBUser *user = [NCMBUser user];
//Facebookの認証情報を利用して会員登録を行う
[user signUpWithFacebookToken:facebookInfo withBlock:^(NSError *error) {
if (error){
//会員登録に失敗した場合の処理
} else {
//会員登録に成功した場合の処理
}
}];
}
}
Facebook認証情報を既存会員に紐付ける
linkWithFacebookToken:withBlock:メソッドを利用することで、
既存会員に、Facebookの認証情報を紐付けることができます。
// ログイン中の会員情報を取得
NCMBUser *mbUser = [NCMBUser currentUser];
if(!mbUser){
mbUser = [NCMBUser user];
}
// ログイン中の会員にFacebookの認証情報を紐付ける
// facebookInfoはFacebookの認証情報で会員登録する時と同じもの
[mbUser linkWithFacebookToken:facebookInfo withBlock:^(NSError *error) {
if (error){
//認証情報の紐付けに失敗した場合の処理
} else {
//認証情報の紐付けが完了したあとの処理
}
}];
unlink:withBlock メソッドで、指定した認証情報だけをログイン中の会員情報から削除することができます。
// 認証情報の削除
[mbUser unlink:@"facebook" withBlock:^(NSError *error) {
if (error){
//認証情報の削除に失敗した場合の処理
} else {
//認証情報の削除後の処理
}
}];
ログアウト処理の実装
ログアウトを行う場合は、mobile backendの会員としてのログアウト処理と、Google認証情報の削除が必要です。
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
// 非同期でログアウト
[NCMBUser logOutInBackgroundWithBlock:^(NSError *error) {
if (error){
//エラー処理
} else {
// Facebookの認証情報を削除
[loginManager logOut];
}
}];
お探しの内容が見つからなかった場合はユーザーコミュニティ
もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。
推奨画面サイズ1024×768px以上