OAuth 2.0 クライアント ID を取得する

概要

Android 向け Google Fit を使用するには、Android アプリ用の OAuth 2.0 クライアント ID が必要です。

すべての Android アプリは、秘密鍵を保持するデジタル証明書で署名されます。デジタル証明書について詳しくは、アプリへの署名に関する Android ガイドをご覧ください。

Android OAuth クライアント ID は、特定の証明書/パッケージのペアにリンクされています。アプリのユーザー数に関係なく、証明書ごとに必要な ID は 1 つだけです。

アプリの ID を取得するには、いくつかのステップが必要です。手順の概要は次のとおりです。

  1. アプリの証明書情報を確認します。
  2. Google API Console でプロジェクトを作成または変更します。
  3. OAuth 2.0 クライアント ID をリクエストします。

アプリの証明書情報を確認する

API キーは、アプリのデジタル証明書という、SHA-1 フィンガープリントと呼ばれる短い形式に基づいています。証明書の SHA-1 フィンガープリントを表示するには、まず、正しい証明書を使用していることを確認してください。次の 2 種類の証明書がある場合があります。

  • デバッグ用証明書: この証明書は、デバッグビルドを行う際に Android SDK ツールによって自動的に生成されます。この証明書は、テストしているアプリでのみ使用してください。デバッグ用証明書で署名されたアプリを公開しないでください。 デバッグ用証明書について詳しくは、Android デベロッパー向けドキュメントのデバッグモードでの署名に関する説明をご覧ください。
  • リリース用証明書: この証明書は、リリースビルドを行う際に Android SDK ツールによって生成されます。keytool プログラムを使用してこの証明書を生成することもできます。この証明書は、アプリを一般向けにリリースす準備が整っている場合に使用してください。

-v パラメータを指定した keytool プログラムを使用して、証明書の SHA-1 フィンガープリントを表示するには、次の手順を参考にしてください。Keytool について詳しくは、Oracle のドキュメントをご覧ください。

デバッグ証明書

デバッグ用証明書のフィンガープリントを表示する

  1. デバッグ用のキーストア ファイルを見つけます。ファイル名は debug.keystore です。このファイルはプロジェクトを初めて構築するときに作成され、デフォルトでは、Android Virtual Device(AVD)ファイルと同じディレクトリに保存されます。

    • macOS と Linux: ~/.android/
    • Windows Vista、Windows 7: C:\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 個の 2 桁の 16 進数で構成されるシーケンスです。

Google API Console で OAuth 2.0 クライアント ID をリクエストする

Google API Console でアプリのプロジェクトを作成または変更し、Fitness API を有効にして、OAuth 2.0 クライアント ID をリクエストする手順は次のとおりです。

指示に沿って Fitness API を自動的に有効にするには、

クライアント ID を取得する

または、次の手順で Google API Console で Fitness API を有効にし、OAuth 2.0 クライアント ID を取得します。

  1. Google API Console に移動します。
  2. プロジェクトを選択するか、新しいプロジェクトを作成します。アプリの Android 版と REST 版に同じプロジェクトを使用します。
  3. [続行] をクリックして Fitness API を有効にします。
  4. [認証情報に進む] をクリックします。
  5. [新しい認証情報] をクリックし、[OAuth クライアント ID] を選択します。
  6. [アプリケーションの種類] で [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