AndroidでGoogleログイン
インストールステップとこのプラグインの全マークダウンガイドのセットアップ用質問をコピーする。
このガイドでは、Capgo Social Login for AndroidとGoogleログインを設定する方法について説明します。 一般的なセットアップガイドを既に読んだと想定しています。.
AndroidでGoogleログインを使用する
「AndroidでGoogleログインを使用する」のセクションこのセクションでは、AndroidでGoogleログインを設定する方法について説明します。
-
Create an Android client ID.
-
Click on the search bar
-
Search for
credentialsand click on theAPIs and Servicesone (number 2 on the screenshot)
-
Click on the
create credentials
-
Select
OAuth client ID
-
Select the
Androidアプリケーションタイプ
-
Android Studioを開く
-
ナビゲーターの最下部で、Gradle Scriptsセクションを探す
Gradle Scripts
-
build.gradle (Module: app)ファイルを探す
build.gradle. このファイルはあなたのapp
-
. このファイルはあなたの__CAPGO_KEEP_0__になります。
android.defaultConfig.applicationId. このファイルはあなたの__CAPGO_KEEP_0__になります。package nameIn Google Console
-
ターミナルを開いてください。アプリのフォルダに移動し、
androidコマンドを実行してください./gradlew signInReport
- コマンドの先頭に移動してください。次の内容が表示されるはずです。
SHA1.
- Google Consoleに戻り、
applicationIdとPackage NameAndroidクライアント作成フォームにパッケージ名とSHA1を入力し、create
-
-
Create a web client (this is required for 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-
フォルダを開く
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'; -
__CAPGO_KEEP_0__ を実行するボタンを作成し、クリックすると以下の __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.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))
-
-
__CAPGO_KEEP_0__をテスト用に設定してください。
-
__CAPGO_KEEP_0__に移動し、プラスボタンをクリックしてください。
Device manager__CAPGO_KEEP_0__のデバイスマネージャーにプラスボタンが表示されます。
-
__CAPGO_KEEP_0__ボタンをクリックしてください。
-
__CAPGO_KEEP_0__が表示されます。
Play Store__CAPGO_KEEP_0__のデバイスを選択してください。
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 __CAPGO_KEEP_0__Google Play
-
System image selection showing Google Play type images
-
Next button in system image selection screen
-
シミュレータに
Device Manager起動してください
-
シミュレータが起動したら、その設定画面に
-
に
Google Play
- をクリック
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__. Logcatエラー GoogleSignInClient API. Logcat errors such as GetCredentialCustomException: [28444] Developer console is not set up correctly Logcatをフィルタ
with GoogleProvider または CapgoSocialLogin 失敗したログイン後。プラグインはパッケージ名、署名のSHA-1、masked webClientId これらをGoogle Cloud Consoleと比較することができます。
必要なGoogle Cloud設定
セクションのタイトル:必要なGoogle Cloud設定Google Cloudプロジェクト内に2種類のOAuth 2.0クライアントIDが必要です。
| クライアントタイプ | 使用 | 場所 |
|---|---|---|
| Webアプリケーション | サーバー/IDトークン受信者 | webClientId in 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 署名 android/app/build.gradle Android OAuth クライアント パッケージ名は、任意のサフィックスを含めて正確に一致する必要があります。 .debug OAuth 同意画面がテストモードになっている場合、ユーザー > テストユーザーにテストするすべての Google アカウントを追加してください。アプリをプロダクションに公開する必要はありません。
スコープ。 email Google の Digital Asset Links ( ) は、Credential Manager を通じて Google でサインインする必要はありません。 profile Google Cloud の変更は、最大数時間かけて反映されることがあります。assetlinks.jsonエラー 28444: 開発者コンソールが正しく設定されていない
「エラー 28444: 開発者コンソールが正しく設定されていない」セクション
これはほぼ常に、インストール済みの APK 署名証明書、パッケージ名、
の組み合わせが Google によって拒否されたことを意味します。このチェックリストを通して、問題を解決してください。 webClientId確認
- Confirm
webClientId__CAPGO_KEEP_0__はWebアプリケーションクライアントIDであり、.apps.googleusercontent.com. - アプリを実行し、エラーを再現し、Logcatを読み、
GoogleProvider,signingSha1=, およびpackage=. - In 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の不一致が発生する可能性がある。コンソールの設定を修正することから始める。
__CAPGO_KEEP_0__をインストールしたビルドからSHA-1を抽出
__CAPGO_KEEP_0__から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 で 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要素認証の実装詳細