Android の Google ログイン
このプラグインのセットアップ手順とフルマークダウンガイドをコピーします。
このガイドでは、Capgo Android用のSocial LoginプラグインとGoogleログインを設定する方法を学びます。 既に一般的なセットアップガイドを読んだと想定しています。 一般的なセットアップガイド.
AndroidでGoogleログインを使用する
AndroidでGoogleログインを使用する方法このセクションでは、AndroidでGoogleログインを設定する方法を学びます。
-
AndroidクライアントIDを作成します。
-
検索バーをクリックしてください。
-
で検索してください。
credentialsのAPIs and Services検索結果の
-
クリックしてください。
create credentials
-
選択
OAuth client ID
-
選択する
Androidアプリケーションタイプ
-
Android Studioを開く
-
ナビゲーターの最下部で、
Gradle Scripts
-
モジュール
build.gradlebuild.gradle (Module: app) ファイルをGradle Scriptsセクションで見つけるapp
-
Googleのソーシャルログインプラグインを使用するには、Google Consoleでプロジェクトを作成する必要があります。
android.defaultConfig.applicationIdプロジェクトを作成したら、Google ConsoleでOAuthクライアントIDとシークレットを取得します。package nameプロジェクトを作成したら、Google ConsoleでOAuthクライアントIDとシークレットを取得します。
-
ターミナルを開いて、プロジェクトのルートディレクトリに移動してください。
androidターミナルでgradlew signInReportコマンドを実行してください。./gradlew signInReport
- コマンドの出力からSHA1証明書の指紋をコピーしてください。
SHA1.
- OAuthクライアントIDとSHA1証明書の指紋を入力したら、保存ボタンをクリックしてください。
applicationIdOAuthクライアントIDとSHA1証明書の指紋を入力したら、保存ボタンをクリックしてください。Package NameOAuthクライアントIDとSHA1証明書の指紋を入力したら、保存ボタンをクリックしてください。create
-
-
Android用にWebクライアントを作成する必要があります
-
Google Consoleの
Create credentialsページに移動 -
Google Consoleの設定
Web
-
Webオプションが強調表示されているアプリケーション種類の選択
Create
-
Webクライアントの作成フォームにCreateボタンが付いています
webClientIdin your JS/TS code
-
-
クライアントIDの詳細を表示し、WebクライアントIDをコピーします
MainActivity-
Android Studioでアプリを開いてください。実行することができます。
cap open android -
検索
MainActivity.java-
フォルダを開く
appフォルダ
-
検索
java
-
検索してください
MainActivity.javaクリックしてください
-
-
変更
MainActivity.java以下を追加してください。codeimport ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
ファイルを保存
-
-
Google ログインをアプリケーションに使用
-
最初に、次のコードをインポート
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
初期化を呼び出します。ただし、1度だけ呼び出してください。
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
呼び出し
SocialLogin.login. Create a button and run the following code on click.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
バックエンドでエクスチェンジする場合、Googleのリフレッシュトークンをそこに保存し、バックエンドでリフレッシュする
-
エミュレータをテスト用に設定する
Device managerに移動し
-
Android Studioのデバイスマネージャーに移動し、プラスボタンが強調表示されている
-
仮想デバイス設定で作成の仮想デバイスボタンをクリック
Play Storeアイコン
このように見ると、
pixel 8プレイストア対応のPlay Storeサービス -
クリック
next
-
Capgo Builder / ネイティブクラウドビルド製品ページ (Page/area: Capgo Builder / native cloud build product page. Role: Short UI label or navigation item.)
Google Play. OSイメージが次のタイプであることを確認 必ずしもGoogle Play
-
Google Playタイプのシステムイメージを表示
-
あなたのデバイスを確認してください。エミュレータに名前を付けることができます
-
進む
Device Managerシミュレータを起動してください
-
シミュレータが起動したら、設定画面に進んでください
-
進む
Google Play
- クリック
Update約60秒待ってください
-
-
アプリケーションをテストしてください。
すべての設定が正しく行われた場合、Googleログインフローが正常に動作するはずです。
トラブルシューティング
トラブルシューティング問題が発生した場合は、まずGoogle Cloud Consoleの値とアプリの設定を比較してください。AndroidのGoogleサインインの失敗は、パッケージ名、SHA-1、またはクライアントIDの不一致によって引き起こされることがよくあります。
クレデンシャルマネージャー、SHA-1、Firebase
クレデンシャルマネージャー、SHA-1、FirebaseAndroidでは、このプラグインはGoogle Credential Manager(およびSign in with Google)を使用しますが、LEGACYのものではありません。androidx.credentials __CAPGO_KEEP_0__。ログキャットエラーなど GoogleSignInClient API GetCredentialCustomException: [28444] Developer console is not set up correctly から始まるスタックから
ログキャットをフィルタする GoogleProvider または CapgoSocialLogin Capacitorライブアップデートの代替 webClientId 失敗したログイン後、プラグインはパッケージ名、署名のSHA-1、およびマスクされた
これらをGoogle Cloud Consoleで比較することができます。
Google Cloudの設定が必要ですセクション「Google Cloudの設定が必要です」
| 同じGoogle Cloudプロジェクト内に2種類のOAuth 2.0クライアントIDが必要です: | クライアントタイプ | 使用する |
|---|---|---|
| どこに置くか | サーバー / ID トークン聴衆 | webClientId in SocialLogin.initialize() |
| Android、署名キーごとに1つ | GoogleにAPKが許可されていることを証明します | Google Cloud Consoleのみ。IDをここに渡さないでください webClientId |
よくある間違いは、AndroidクライアントIDを使用していることです webClientId. ここではWebクライアントIDが必要です。Credential ManagerにはAndroidクライアントIDは必要ありません。ただし、コンソールに正しいパッケージ名とSHA-1を登録する必要があります。
各テストビルドを署名する証明書ごとに1つのAndroid OAuthクライアントを作成してください
- デバッグ:
./gradlew signingReportデバッグ用 - リリース: 実際にインストールするAPKまたはAABから
- リリース用
Android OAuthクライアントパッケージ名は、任意の applicationId オートメーション android/app/build.gradle パッケージ名のサフィックスを含めて、完全に一致する必要があります。 .debug テストモードのOAuthconsent画面があれば、Audience > Test usersの下にテストするGoogleアカウントをすべて追加してください。アプリをProductionに公開する必要はありません。
スコープ。 email Digital Asset Links ( profile )は、Credential Managerを通じてGoogleでサインインする必要はありません。assetlinks.jsonGoogle Cloudの変更は、最大数時間かけて反映されることがあります。
エラー 28444: 開発者コンソールが正しく設定されていない
エラー 28444: 開発者コンソールが正しく設定されていない
これはほとんどの場合、Googleがインストール済みのAPK署名証明書、パッケージ名、組み合わせを拒否したことを意味します。エラー 28444: 開発者コンソールが正しく設定されていない webClientId. Androidアプリを実行し、エラーが発生した場合のログを確認してください。
- 確認
webClientIdはWebアプリケーションクライアントIDであり、.apps.googleusercontent.com. - Run the app, reproduce the failure, and read Logcat for
GoogleProvider,signingSha1=, およびpackage=. - In Google Cloud Console > Credentials, Android OAuthクライアントを開き、パッケージ名とSHA-1の完全な値を確認してください。
- リリースビルドをテストしている場合、デバッグキーストアからSHA-1を登録するのではなく、そのビルドからSHA-1を登録してください。
- アプリがPlayストアで配布されている場合、Playアプリ署名SHA-1も登録してください。
- WebアプリとAndroidアプリは同じGoogle Cloudプロジェクト内に存在することを確認してください。
- consent画面がテストモードの場合、Googleアカウントがテストユーザーであることを確認してください。
- 再試行の待機
USER_CANCELLED デバッグビルドが設定されていない場合、または設定が不正である場合、選択したアカウントの SHA-1 またはクライアント ID が一致しない可能性があります。まずコンソールの設定を修正してください。
インストールするビルドから SHA-1 を抽出
インストールするビルドから SHA-1 を抽出デバッグまたはローカルビルド:
cd android && ./gradlew signingReport署名済みリリース APK:
keytool -printcert -jarfile android/app/release/app-release.apkSHA-1 を Android OAuth クライアントに追加し、パッケージ名が一致する署名済み APK を再インストールし、再度テストしてください。
adb install android/app/release/app-release.apkログイン結果を読む
「ログイン結果を読む」のセクショントークンは次の階層にあります result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Firebase Authの場合、以下の資格情報を作成してください idToken WebクライアントIDを使用してください webClientId で initialize.
開発用SHA-1証明書を取得できない場合は、カスタムキーストアを試してください この問題コメント プロジェクトにキーストアを追加する方法について説明しています
AndroidのGoogleログインから続けてください
AndroidでGoogleログインを継続するあなたが使用している Googleログイン 認証とアカウントフローの計画に使用している場合 Using @capgo/capacitor-social-login for the native capability in Using @capgo/capacitor-social-login, @capgo/capacitor-social-login for the implementation detail in @capgo/capacitor-social-login, @capgo/capacitor-passkey for the implementation detail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and 2要素認証 2要素認証の実装詳細について