SNS連携(Obj-C)
Google連携
Contents |
概要
このページでは、Googleアカウントを利用した会員登録や、
既存アカウントにGoogle認証情報を紐付ける設定について説明していきます。
事前準備
mobile backendの会員情報にGoogleアカウントを利用する場合は、
アクセストークンなどの認証情報を取得するためにGoogleアカウントでのログイン・ログアウトをアプリに実装する必要があります。
Googleアカウントでのログイン・ログアウトを実装するためには、以下の準備が必要です。
- 無料のGoogleアカウント作成および、Google Developer Consoleでのプロジェクト作成
- プロジェクト作成は、下記のライブラリインストール時に作成することもできます
- Google Sign-In 用ライブラリインストールとXcodeプロジェクトの設定
- Start integratingを参考にプロジェクト設定を行ってください
管理画面での設定
アプリ設定のSNS連携を開き、Google連携を許可してください。
連携の許可にチェックを入れた上で、Googleの開発者向けサイトで発行されたiOS向けのクライアントIDを入力してください。
※ すでに別のクライアントIDが登録されている場合は、カンマ区切り(,)で複数のクライアントIDを登録する事が出来ます。
アプリ側でGoogle認証を実装する
会員登録を行う
会員登録を行う場合、Googleへのログインとアプリ連携が完了したあとで呼び出されるブロック内で、
mobile backendに会員を登録していきます。
Googleの認証情報でmobile backendの会員登録を行うには、signUpWithGoogleToken:withBlock メソッドを利用します。
// Google Sign-In後に呼び出されるデリゲートメソッド
- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)googleUser withError:(NSError *)error {
if (error){
//Googleへのログインに失敗した場合の処理
} else {
// mobile backend会員登録するための認証情報を作成
NSDictionary *googleInfo = @{@"id":googleUser.userID,
@"access_token":googleUser.authentication.accessToken};
//会員のインスタンスを作成
NCMBUser *mbUser = [NCMBUser user];
//Googleの認証情報を利用して会員登録を行う
[mbUser signUpWithGoogleToken:googleInfo block:^(NSError *error) {
if (error){
//mobile backendの会員登録に失敗した場合の処理
} else {
//会員登録に成功した場合の処理
}
}];
}
}
Googleの認証情報を既存会員に紐付ける
mobile backendに登録済みの会員とGoogleの認証情報を紐付ける場合はlinkWithGoogleToken:withBlock メソッドを呼び出します。
//ログイン中の会員情報を取得
NCMBUser *mbUser = [NCMBUser currentUser];
if(!mbUser){
mbUser = [NCMBUser user];
}
// ログイン中の会員に、Googleの認証情報を紐付ける
// googleInfoは、Googleの認証情報で会員登録する時と同じもの
[mbUser linkWithGoogleToken:googleInfo withBlock:^(NSError *error) {
if (error){
//認証情報の紐付けに失敗した場合の処理
} else {
//認証情報の紐付けが完了したあとの処理
}
}];
unlink:withBlock メソッドで、指定した認証情報だけをログイン中の会員情報から削除することができます。
// 認証情報の削除
[mbUser unlink:@"google" withBlock:^(NSError *error) {
if (error){
//認証情報の削除に失敗した場合の処理
} else {
//認証情報の削除後の処理
}
}];
ログアウト処理の実装
ログアウトを行う場合は、mobile backendの会員としてのログアウト処理と、Google認証情報の削除が必要です。
// 非同期でログアウト
[NCMBUser logOutInBackgroundWithBlock:^(NSError *error) {
if (error){
//mobile backendのログアウトに失敗した場合の処理
} else {
// GoogleのAccessTokenを削除する
[[GIDSignIn sharedInstance] signOut];
}
}];
お探しの内容が見つからなかった場合はユーザーコミュニティ
もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。
推奨画面サイズ1024×768px以上