AndroidでGoogleログイン
インストール手順とこのプラグインの全マークダウンガイドを含む設定用の質問をコピーします。
このガイドでは、Capgo Social Login for AndroidとGoogleログインを設定する方法を学びます。一般的な設定ガイドをすでに読んだと想定しています。 AndroidでGoogleログインを使用する.
「AndroidでGoogleログインを使用する」のセクション
このセクションでは、AndroidでGoogleログインを設定する方法を学びます。__CAPGO_KEEP_0__
-
AndroidクライアントIDを作成します。
-
検索バーをクリックしてください
-
を検索してください
credentialsと検索結果のAPIs and Services2番目のスクリーンショットの数字
-
をクリックしてください
create credentials
-
作成
OAuth client ID
-
を選択してください
Androidアプリケーションタイプ
-
Android Studioを開く
-
ナビゲーターの最下部で
Gradle Scripts
-
を探す
build.gradleモジュールapp
-
をコピーしてください
android.defaultConfig.applicationIdこれはあなたのpackage nameGoogle コンソール内
-
さて、ターミナルを開いてください。アプリのフォルダに移動し、
androidフォルダ内の./gradlew signInReport
- このコマンドの先頭にスクロールしてください。次の内容が表示されるはずです。
SHA1.
- Google コンソールに戻り、
applicationIdとPackage NameAndroid クライアント作成フォームにパッケージ名と SHA1 を入力し、create
-
-
Android クライアント作成フォーム
-
Go to the
Create credentialsGoogle Consoleのページに移動 -
Set application type to
Web
-
Click
Create
-
Copy the client ID, you’ll use this as the
webClientIdJS/TSのcodeにこのクライアントIDを使用
-
-
Modify your
MainActivity-
Android Studioでアプリを開いてください。アプリを実行することができます。
cap open android -
Find
MainActivity.java-
Android スタジオのプロジェクト ナビゲーターでフォルダを開く
appフォルダ
-
見つける
java
-
MainActivity.java ファイルのパッケージ構造を見つける
MainActivity.java変更する。__CAPGO_KEEP_0__ を追加してください
-
-
ファイルを保存する
MainActivity.java. Please add the following 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'; -
__CAPGO_KEEP_0__ を 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ボタンを作成し、次の code をクリック時に実行する。const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
エミュレータをテスト用に設定する
-
に移動し、プラスボタンをクリック
Device managerAndroid Studioのデバイスマネージャーにプラスボタンが強調表示されている
-
仮想デバイス設定の「Create Virtual Device」ボタン
-
デバイスのアイコン
Play Storeハードウェアの選択でプレイストアをサポートするデバイスが表示されている
ご覧のとおり、
pixel 8をサポートしています。Play Storeサービス -
をクリック
next
-
OSイメージが次のタイプであることを確認してください。
Google Play. __CAPGO_KEEP_0__ のタイプであることを確認してください。Google Play
-
をクリック
-
デバイスを確認してください。エミュレータに名前を付けることができます。
-
シミュレータに
Device Managerと起動してください
-
シミュレータが起動したら、設定画面に
-
設定画面に
Google Play
- ボタンを
Update約60秒待ってください
-
-
Updateボタン
正しくすべてを実行した場合は、Google ログインフローが正常に動作するはずです:
トラブルシューティング
トラブルシューティング問題があれば、まずアプリの設定をGoogle Cloud Consoleの値と比較してください。AndroidのGoogle Sign-Inの失敗は、パッケージ名、SHA-1、またはクライアントIDの不一致によって引き起こされることがよくあります。
クレデンシャルマネージャー、SHA-1、Firebase
Androidでは、このプラグインはGoogle Credential Manager (とSign in with Google)を使用し、LEGACYandroidx.credentials __CAPGO_KEEP_0__。ログキャットエラー GoogleSignInClient API. Logcat errors such as GetCredentialCustomException: [28444] Developer console is not set up correctly ログキャットをフィルタ
with GoogleProvider または CapgoSocialLogin 失敗したログイン後。 webClientId プラグインはパッケージ名、署名のSHA-1、そしてマスクされた
これらをGoogle Cloud Consoleと比較することができます。
必要なGoogle Cloud設定セクションのタイトル:必要なGoogle Cloud設定
| Google Cloudプロジェクト内に2種類のOAuth 2.0クライアントIDが必要です。 | クライアントタイプ | 使用する |
|---|---|---|
| どこに置く | Webアプリケーション | webClientId サーバー/IDトークン受信者 SocialLogin.initialize() |
| Android、各サインインキーごとに1つ | GoogleのAPKが許可されていることを証明します | Google Cloud Consoleのみ。 このIDを webClientId |
AndroidクライアントIDを使用するのはよくない習慣です webClientIdCredential ManagerにはWebクライアントIDが必要です。 Androidクライアントには、コンソールで正しく登録されたパッケージ名とSHA-1のみが必要です。
テストするビルドを署名する各証明書に対して、Android OAuthクライアントを作成してください:
- Debug:
./gradlew signingReportデバッグ用に - リリース: 実際にインストールするAPKまたはAABから
- Play App Signing: Play Console > App integrity > App signing key certificateから。このPlay Storeビルド用に、既にアップロードキーSHA-1が登録されている場合でも必要です。
The applicationId アプリ内 android/app/build.gradle Android OAuth クライアント パッケージ名は、任意のサフィックスを含めて正確に一致する必要があります。 .debug OAuth 同意画面がテストモードになっている場合、ユーザー > テストユーザーでテストする Google アカウントをすべて追加してください。アプリをプロダクションに公開する必要はありません。
スコープ。 email Google の Digital Asset Links ( profile ) は、Credential Manager を使用して Google でサインインするために必要ありません。assetlinks.jsonGoogle Cloud の変更は、最大数時間かけて反映されることがあります。
エラー 28444: 開発者コンソールが正しく設定されていない
このセクションのタイトルは “エラー 28444: 開発者コンソールが正しく設定されていない” です。
これはほぼ常に、Google がインストール済みの APK Signing Certificate、パッケージ名、の組み合わせを拒否したことを意味します。以下のチェックリストを確認してください。 webClientId確認
- must exactly match the Android OAuth client package name, including any
webClientIdはWebアプリケーションクライアントIDであり、.apps.googleusercontent.com. - アプリを実行し、エラーを再現し、Logcatを読み、
GoogleProvider,signingSha1=、およびpackage=. - で Google Cloud Console > 資格情報で、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.apk対応するパッケージ名を持つAndroid OAuthクライアントにそのSHA-1を追加し、同じ署名済みAPKを再インストールし、再度テストしてください:
adb install android/app/release/app-release.apkログイン結果を読み取る
ログイン結果を読む__CAPGO_KEEP_0__ result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Firebase Authの場合、以下の資格情報を作成してください。 idToken WebクライアントIDを使用してください。 webClientId もし initialize.
開発用のSHA-1証明書が取得できない場合は、カスタムキーストアを試してください。 __CAPGO_KEEP_0__ この問題コメント
プロジェクトにキーストアを追加する方法を説明しています。
AndroidのGoogleログインから続けてください。AndroidのGoogleログインから続けてください。 Android用Googleログイン 認証とアカウントフローの計画に役立つため、 Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-passkey Using @capgo/capacitor-passkey Using @capgo/capacitor-native-biometric Using @capgo/capacitor-native-biometric 2要素認証 2要素認証