跳转到内容

Google 登录 Android

在本指南中,您将了解如何为 Android 设置 Google 使用 Capgo 社交登录登录。 我假设您已经阅读了一般设置指南

在本部分中,您将学习如何在 Android 中设置 Google 登录。

  1. 创建 Android 客户端 ID。

    1. 点击搜索栏

      Google 控制台搜索栏
    2. 搜索 credentials 并单击“API 和服务”(屏幕截图中的数字 2)

      搜索结果显示凭据选项,并突出显示 API 和服务
    3. 单击“创建凭据”

      在 Google 控制台中创建凭据按钮
    4. 选择OAuth client ID

      凭证创建菜单中的 OAuth 客户端 ID 选项
    5. 选择Android应用程序类型

      应用程序类型选择,突出显示 Android 选项
    6. 打开 Android Studio

    7. 在导航器的最底部,找到“Gradle Scripts”

      Android Studio 项目导航器中的 Gradle 脚本部分
    8. 找到模块 appbuild.gradle

      Gradle 脚本部分中的 build.gradle(模块:app)文件
    9. 复制 android.defaultConfig.applicationId。这将是您在 Google 控制台中的“包名称”

      显示 applicationId 配置的 Build.gradle 文件
    10. 现在,打开终端。确保您位于应用程序的 android 文件夹中并运行 ./gradlew signInReport

    显示 gradlew signInReport 命令的终端
    1. 滚动到该命令的顶部。您应该看到以下内容。复制 SHA1
    显示 SHA1 证书指纹的终端输出
    1. 现在,返回 Google 控制台。在证书字段中输入您的 applicationId 作为“包名称”和 SHA1,然后单击 create
    Android 客户端创建表单,其中填写了包名称和 SHA1 字段
  2. 创建一个 Web 客户端(Android 需要此)

    1. 转到 Google 控制台中的“创建凭证”页面

    2. 将应用程序类型设置为 Web

      应用程序类型选择,突出显示 Web 选项
    3. 单击Create

      Web 客户端创建表单,底部带有“创建”按钮
    4. 复制客户端 ID,您将在 JS/TS 代码中使用它作为 webClientId

      显示要复制的 Web 客户端 ID 的客户端 ID 详细信息
  3. 修改您的 MainActivity

    1. 请在 Android Studio 中打开您的应用程序。您可以运行 cap open android

    2. 找到 MainActivity.java

      1. 打开 app 文件夹

        Android Studio 项目导航器中的应用程序文件夹
      2. 找到 java

        Android Studio 项目结构中的 Java 文件夹
      3. 找到您的 MainActivity.java 并单击它

        包结构中的MainActivity.java文件
    3. 修改 MainActivity.java。请添加以下代码

      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 {
      @Override
      public 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
      @Override
      public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
      }
    4. 保存文件

  4. 在您的应用程序中使用 Google 登录

    1. 首先导入 SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. 调用初始化。这应该只被调用一次。

      // 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',
      }
      })
      })
    3. 致电 SocialLogin.login。创建一个按钮并在单击时运行以下代码。

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. 配置模拟器进行测试

    1. 进入“设备管理器”并单击加号按钮

      Android Studio 中的设备管理器,突出显示加号按钮
    2. 创建虚拟设备

      虚拟设备配置中的创建虚拟设备按钮
    3. 选择任何带有 Play Store 图标的设备

      显示支持 Play Store 的设备的硬件选择

      如您所见,pixel 8 支持 Play Store 服务

    4. 单击next

      设备创建向导中的“下一步”按钮
    5. 确保操作系统映像的类型为 Google Play它必须Google Play 类型

      显示 Google Play 类型图像的系统图像选择
    6. 点击下一步

      系统映像选择屏幕中的“下一步”按钮
    7. 确认您的设备。您可以根据自己的喜好命名您的模拟器

      带有“完成”按钮的设备配置验证屏幕
    8. 进入“设备管理器”并启动模拟器

      带有列出的虚拟设备和播放按钮的设备管理器
    9. 模拟器启动后,进入其设置

      Android 模拟器显示设置应用程序
    10. 进入 Google Play

    带有 Google Play 选项的设置屏幕
    1. 点击 Update 并等待大约 60 秒
    Google Play 使用更新按钮更新屏幕
  6. 测试您的应用程序

    如果您所做的一切正确,您应该会看到 Google 登录流程正常工作:

    Android 上的 Google 登录流程演示显示登录过程和成功的身份验证

如果您有任何问题,请查看 Github issues

Google 登录问题始终与 SHA1 证书相关。

如果无法获取开发 SHA1 证书,请尝试使用自定义密钥库。 此处 是一条注释,解释如何将密钥库添加到您的项目中。