获取 OAuth 2.0 客户端 ID

概览

要使用 Google 健身(Android 版),您需要为 Android 应用提供 OAuth 2.0 客户端 ID。

所有 Android 应用都使用您持有私钥的数字证书进行签名。如需详细了解数字证书,请参阅关于为应用签名的 Android 指南

Android OAuth 客户端 ID 与特定证书/软件包对相关联。无论您应用有多少用户,每个证书都只需要一个 ID。

为您的应用获取 ID 需要执行几个步骤。下文概述了这些步骤。

  1. 查找应用的证书信息。
  2. 在 Google API 控制台中创建或修改项目。
  3. 请求 OAuth 2.0 客户端 ID。

查找应用的证书信息

API 密钥基于应用的数字证书(即其 SHA-1 指纹)的简要形式。如需显示证书的 SHA-1 指纹,请先确保您使用的是正确的证书。您可能有两个证书:

  • 调试证书:Android SDK 工具会在您执行调试 build 时自动生成此证书。此证书只能用于要测试的应用。请勿尝试发布使用调试证书签名的应用。Android 开发者文档中的在调试模式下签名部分详细介绍了调试证书。
  • 发布证书:Android SDK 工具会在您执行发布 build 时自动生成此证书。您也可以使用 keytool 程序生成此证书。如果您已准备好公开发布应用,请使用此证书。

按照下面的步骤,结合使用 keytool 程序与 -v 参数来显示证书的 SHA-1 指纹。如需详细了解 Keytool,请参阅 Oracle 文档

调试证书

显示调试证书指纹

  1. 找到您的调试密钥库文件。该文件的文件名为 debug.keystore,在您首次构建项目时创建。默认情况下,它与 Android 虚拟设备 (AVD) 文件存储在同一目录下:

    • macOS 和 Linux~/.android/
    • Windows Vista 和 Windows 7C:\Users\your_user_name\.android\
  2. 列出 SHA-1 指纹:

    • 对于 Linux 或 macOS,请打开终端窗口,然后输入以下内容:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • 对于 Windows Vista 和 Windows 7,请运行以下命令:

      keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

您会看到如下所示的输出:

Alias name: androiddebugkey
Creation date: Jan 01, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
     MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
     SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
     Signature algorithm name: SHA1withRSA
     Version: 3
发布证书

显示发布证书指纹

  1. 找到您的发布证书密钥库文件。发布密钥库没有默认位置或名称。如果您在构建要发布的应用时未指定其发布密钥库的位置或名称,则该版本会保持 .apk 处于未签名状态,您需要先为其签名,然后才能发布该版本。对于发布证书,您还需要证书的别名以及密钥库和证书的密码。您可以通过输入以下内容来列出密钥库中所有密钥的别名:

    keytool -list -keystore your_keystore_name

    your_keystore_name 替换为密钥库的完全限定路径和名称,包括 .keystore 扩展名。系统将提示您输入密钥库的密码。然后,keytool 会显示密钥库中所有密钥的别名。

  2. 在终端或命令提示符中输入以下内容:

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    your_keystore_name 替换为密钥库的完全限定路径和名称,包括 .keystore 扩展名。your_alias_name 替换为您在创建证书时为其分配的别名。

您会看到如下所示的输出:

Alias name: <alias_name>
Creation date: Feb 02, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

SHA1 开头的行包含证书的 SHA-1 指纹。该指纹是以冒号分隔的 20 个两位十六进制数字的序列。

在 Google API 控制台中请求 OAuth 2.0 客户端 ID

请按照以下步骤在 Google API 控制台中创建或修改您的应用项目,启用 Fitness API,并请求 OAuth 2.0 客户端 ID。

如果您想要系统引导您完成整个流程并自动启用 Fitness API,请点击

获取客户端 ID

或者,请按以下步骤在 Google API 控制台中启用 Fitness API,并获取 OAuth 2.0 客户端 ID。

  1. 转到 Google API 控制台
  2. 选择项目,或创建新项目。为应用的 Android 版本和 REST 版本使用相同的项目。
  3. 点击继续以启用 Fitness API。
  4. 点击转到凭据
  5. 点击新凭据,然后选择 OAuth 客户端 ID
  6. Application type 下,选择 Android
  7. 在出现的对话框中,输入应用的 SHA-1 指纹和软件包名称。例如:

    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

    com.example.android.fit-example

  8. 点击创建。您的新 Android OAuth 2.0 客户端 ID 和密钥会显示在项目的 ID 列表中。OAuth 2.0 客户端 ID 是一串字符,如下所示:

    780816631155-gbvyo1o7r2pn95qc4ei9d61io4uh48hl.apps.googleusercontent.com