Android の Google ログイン
このプラグインのセットアッププロンプトをコピーします。インストール手順とフルマークダウンガイドが含まれます。
このガイドでは、Capgo Social Login for AndroidとGoogleログインをセットアップする方法を学びます。 既読の一般的なセットアップガイドを読んだことを前提としています。 AndroidでGoogleログインを使用する.
general setup guide
AndroidでGoogleログインを使用する方法このセクションでは、AndroidでGoogleログインを設定する方法を学びます。
-
AndroidクライアントIDを作成する
-
検索バーをクリックしてください
-
で検索してください
credentialsのAPIs and Services検索結果の表示
-
の
create credentials
-
選択
OAuth client ID
-
選択する
Androidアプリケーションタイプ
-
Android Studioを開く
-
ナビゲーターの最下部で、
Gradle Scripts
-
モジュール
build.gradlebuild.gradle (モジュール: app) ファイルをGradle Scriptsセクションで検索app
-
Googleのソーシャルログインプラグインを使用するには、Google Consoleでプロジェクトを作成する必要があります。
android.defaultConfig.applicationIdこのプロジェクトのpackage nameをGoogle Consoleに登録する必要があります。
-
ターミナルを開いて、
androidのフォルダに移動してください。./gradlew signInReport
- コマンドを実行してください。
SHA1.
- を確認してください。
applicationIdGoogle Consoleに戻ってください。Package Nameに登録する必要があります。create
-
-
Android用にWebクライアントを作成する必要があります。
-
Google Consoleの
Create credentialsページに移動します。 -
アプリケーションの種類を
Web
-
Webオプションが強調表示されているアプリケーション種類の選択画面
Create
-
Webクライアントの作成フォームにCreateボタンが表示されています。
webClientIdin your JS/TS code
-
-
WebクライアントIDをコピーするためのクライアント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',}})}) -
Google ログインを使用するには、以下の手順に従ってください。
SocialLogin.login. 画面にボタンを作成し、クリックすると、次の code が実行されます。const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
エミュレータを設定してテスト
-
に移動してください
Device managerで、プラスボタンをクリックしてください
-
デバイスマネージャーにプラスボタンが強調表示されます
-
仮想デバイス設定の「Create Virtual Device」ボタン
Play Storeicon
このように見えますが
pixel 8Play StoreをサポートするPlay Storeサービス -
クリック
next
-
Capgo Builder / ネイティブクラウドビルド製品ページ (Page/area: Capgo Builder / native cloud build product page)
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)を使用しますが、LEGACYandroidx.credentials __CAPGO_KEEP_0__。ログキャットエラーなど GoogleSignInClient API GetCredentialCustomException: [28444] Developer console is not set up correctly から始まるスタックから
Logcatをフィルタする GoogleProvider または CapgoSocialLogin Google Cloud Consoleで比較することができます。 webClientId Google Cloudの設定
Google Cloudの設定
Google Cloudプロジェクト内に2種類のOAuth 2.0クライアントIDが必要です。種類
| 使用 | 場所 | Webアプリケーション |
|---|---|---|
| __CAPGO_KEEP_0__ | サーバー / ID トークン聴衆 | webClientId で SocialLogin.initialize() |
| Android、署名キーごとに1つ | Googleを呼び出すことを許可されたAPKを証明する | Google Cloud Consoleのみ。 このIDを webClientId |
このIDを使用するのはよくある間違いです。 AndroidクライアントIDを使用すると、Credential ManagerではWebクライアントIDが必要です。 Androidクライアントには、コンソールで正しく登録されたパッケージ名とSHA-1のみが必要です。 webClientId各テストビルドを署名する証明書ごとに1つのAndroid OAuthクライアントを作成してください:
デバッグ:
- デバッグ用の
./gradlew signingReportリリース: 実際にインストールするAPKまたはAABから - プレイアプリ署名: Play Console > アプリの不正行為 > アプリ署名キー証明書から。このはプレイストアビルドの場合でも、アップロードキーSHA-1がすでに登録されている場合でも必要です。
- Play App Signing: from Play Console > App integrity > App signing key certificate. This is required for Play Store builds even if your upload key SHA-1 is already registered.
The applicationId in android/app/build.gradle は完全にAndroid OAuthクライアントパッケージ名を含む、任意の .debug サフィックス。
OAuthconsentスクリーンがテストモードにある場合、受信者>テストユーザーにテストするすべてのGoogleアカウントを追加してください。アプリをプロダクションに公開する必要はありません。 email 、 profile スコープ。assetlinks.jsonDigital Asset Links (
)はSign in with Google through Credential Managerのために必要ありません。
Google Cloudの変更は最大数時間かけて反映されます。
エラー 28444:開発者コンソールが正しく設定されていないエラー 28444:開発者コンソールが正しく設定されていない webClientId. このチェックリストを確認してください:
- 確認
webClientIdはWebアプリケーションクライアントIDであり、.apps.googleusercontent.com. - アプリを実行し、エラーが発生したときにログキャットを読み、
GoogleProvider,signingSha1=, およびpackage=. - Google Cloud Console > 資格情報 で、Android OAuthクライアントを開き、パッケージ名とSHA-1の精確な値を確認してください。リリースビルドをテストしている場合、デバッグキーストアからSHA-1を登録するのではなく、そのビルドからSHA-1を登録してください。
- リリースビルドを配布している場合、プレイストアを通じて配布している場合も、プレイアプリ署名のSHA-1を登録してください。
- WebアプリケーションとAndroidクライアントは同じGoogle Cloudプロジェクト内に存在することを確認してください。
- consent画面がテストモードの場合、Googleアカウントがテストユーザーであることを確認してください。
- If the app is distributed through Play Store, also register the Play App Signing SHA-1.
- 再試行
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証明書を取得できない場合は、カスタムキーストアを試してください この問題コメント プロジェクトにキーストアを追加する方法について説明しています
Google Login on Androidから続けてください
Android上でGoogleログインを継続する方法あなたが使用している場合 Android上でGoogleログイン 認証とアカウントフローの計画に使用している場合、Cloudflareを Capacitorの@capgo/capacitor-social-login Capacitorの@capgo/capacitor-social-login Capacitorの@capgo/capacitor-social-login Capacitorの@capgo/capacitor-passkey Capacitorの@capgo/capacitor-passkey Capacitorの@capgo/capacitor-native-biometric Capacitorの@capgo/capacitor-native-biometric Capacitorの@capgo/capacitor-native-biometric 2要素認証 2要素認証の実装詳細について