Google Login on Android
インストール手順とこのプラグインの全マークダウンガイドを含むセットアッププロンプトをコピーします。
このガイドでは、Capgo Android用のソーシャルログインの設定方法を学びます。 既に一般的な設定ガイドを読んだと想定しています。 AndroidでGoogleログインの使用.
「AndroidでGoogleログインの使用」のセクション
このセクションでは、AndroidでGoogleログインの設定方法を学びます。general setup guide
-
AndroidクライアントIDを作成します。
-
検索バーをクリックしてください
-
を検索してください
credentialsと検索結果のAPIs and Services2番目のスクリーンショットの数字
-
をクリックしてください
create credentials
-
を選択してください
OAuth client ID
-
Select the
Androidアプリケーションタイプ
-
Android Studioを開く
-
ナビゲーターの最下部で、
Gradle Scripts
-
Find
build.gradleモジュールapp
-
. この値は、モジュールの
android.defaultConfig.applicationId. This will be yourpackage nameGoogleコンソール
-
ターミナルを開いてください。アプリのフォルダに移動し、
androidターミナルで gradlew signInReportコマンドを実行してください./gradlew signInReport
- ターミナル出力にSHA1の証明書の指紋が表示されます。
SHA1.
- に設定し、証明書のSHA1を入力し、
applicationIdAndroidクライアント作成フォームにパッケージ名とSHA1を入力し、Package NameWebクライアントを作成してください(Android用に必要です)create
-
-
Webクライアントを作成してください(Android用に必要です)
-
Go to the
Create credentialsGoogle Consoleの -
Set application type to
Web
-
Click
Create
-
Copy the client ID, you’ll use this as the
webClientIdcode
-
-
Modify your
MainActivity-
Android Studioでアプリを開いてください。アプリを実行することができます。
cap open android -
Find
MainActivity.java-
Open the
appfolder
-
Find
java
-
Find your
MainActivity.javaとクリックしてください
-
-
Modify
MainActivity.java. codeを追加してくださいimport 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__ を実行するには、ボタンを作成し、次のコードをクリック時に実行してください。
// 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.loginGoogle を初期化するには、次の code を呼び出してください。const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
エミュレータをテスト用に設定する
-
に移動し、プラスボタンをクリックしてください。
Device managerAndroid Studioのデバイスマネージャーにプラスボタンが強調表示されている
-
仮想デバイス設定の「Create Virtual Device」ボタン
-
デバイスを選択するアイコン
Play StorePlayストアをサポートするデバイスが表示されているハードウェア選択画面
As you can see, the
pixel 8supports thePlay Storeservices -
Click
next
-
Next button in device creation wizard
Google Play. Make sure that the OS image is of type IT MUSTGoogle Play
-
System image selection showing Google Play type images
-
Next button in system image selection screen
-
__CAPGO_KEEP_0__に
Device Managerと、シミュレータを起動してください
-
シミュレータが起動したら、その設定画面に進んでください
-
__CAPGO_KEEP_0__に
Google Play
- __CAPGO_KEEP_0__を
Update約60秒待ってください
-
-
アプリケーションをテストしてください
正しく設定が完了している場合、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、maskedをログします。
これらを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を使用するのはよくない習慣です webClientId. WebクライアントIDが必要です。 Credential ManagerにはWebクライアントIDが必要です。
AndroidクライアントIDは、コンソールで正しくパッケージ名とSHA-1を登録している場合にのみ必要です。
- 各テストビルドを署名する証明書ごとに、Android OAuthクライアントを作成してください
./gradlew signingReportデバッグ: - デバッグ用に
- リリース: 実際にインストールするAPKまたはAABから
Play App Signing: Play Console > アプリの安全性 > アプリ署名キー証明書から。この必要です。Play Storeビルドの場合、アップロードキーSHA-1が既に登録されている場合でも。 applicationId 署名キーごとに1つの android/app/build.gradle Android OAuthクライアントパッケージ名を含む任意のサフィックスと完全に一致する必要があります。 .debug OAuth承認画面がテストモードになっている場合、ユーザー > テストユーザー下のすべてのGoogleアカウントを追加してください。アプリをProductionに公開する必要はありません。
Googleアカウントを使用したSign inの場合、Digital Asset LinksはCredential Managerを使用する場合にのみ必要です。 email Google Cloudの変更は最大数時間かかることがあります。 profile エラー 28444:開発者コンソールが正しく設定されていないassetlinks.json「エラー 28444:開発者コンソールが正しく設定されていない」
これはほとんどの場合、Googleがインストール済みのAPK署名証明書、パッケージ名、
の組み合わせを拒否したことを意味します。
このチェックリストを通してください。確認 webClientIdConfirm
- Confirm
webClientId__CAPGO_KEEP_0__はWebアプリケーションクライアントIDであり、.apps.googleusercontent.com. - アプリを実行し、エラーが発生した場合にログキャットを参照し、
GoogleProvider,signingSha1=、およびpackage=. - In Google Cloud Console > 資格情報、Android OAuthクライアントを開き、パッケージ名とSHA-1を確認する
- リリースビルドをテストしている場合、デバッグキーストアからSHA-1を登録するのではなく、そのビルドからSHA-1を登録する
- 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ログイン結果を読み取る
セクションのタイトル “ログイン結果を読む”トークンは次のようになります result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Firebase Authの場合、次のクレデンシャルを作成してください idToken WebクライアントIDを使用して webClientId in initialize.
開発用のSHA-1証明書を取得できない場合は、カスタムキーストアを試してください この問題コメント プロジェクトにキーストアを追加する方法を説明しています
Google Login on Androidから続けてください
セクションのタイトル “Google Login on Androidから続けてください”使用中の場合 Google Android のログイン を計画し、認証とアカウントフローの接続を行うには @capgo/capacitor-social-login を使用 @capgo/capacitor-social-login のネイティブ機能のために @capgo/capacitor-social-login @capgo/capacitor-social-login の実装詳細 @capgo/capacitor-passkey @capgo/capacitor-passkey の実装詳細 @capgo/capacitor-native-biometric @capgo/capacitor-native-biometric の実装詳細、 2要素認証 2要素認証の実装詳細