Google Cloud で ARCore API を使用する

プラットフォームを選択: <ph type="x-smartling-placeholder"></ph>

Geospatial APICloud Anchors は Google Cloud でホストされる ARCore API。これらの機能を使用する場合、アプリケーションは 認証情報を使用して ARCore API サービスにアクセスします。

このクイックスタートでは、アプリケーションを設定して、 Google Cloud でホストされている ARCore API サービスと通信できます。

新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトを使用する

既存のプロジェクトがある場合は、それを選択します。

プロジェクト セレクタに移動

既存の Google Cloud プロジェクトがない場合は、1 つ作成します。

新しいプロジェクトを作成する

ARCore API を有効にする

ARCore API を使用するには、プロジェクトで有効にする必要があります。

ARCore API を有効にする

認証方法を設定する

Unity アプリは、次の 2 つの方法で ARCore API と通信できます。 認可方法: キーレス認証。これは、 方法、API キー認証があります。

  • Android では、キーなし認証はアプリのパッケージ名と 署名鍵のフィンガープリントを 使用してアプリケーションを承認します

    iOS では、キーなし認証は、署名されたトークンを使用して API へのアクセスを制御します。この メソッドでは、トークンに署名し、トークンへのアクセスを制御するために、 できます。

  • API キーは、Google Cloud プロジェクトを識別する文字列です。API キーは、 これらはクライアントがアクセスできるため、一般的には安全とは見なされません。 ARCore API との通信には、キーなし認証の使用を検討してください。

キーレス

キーなし認証を使用してアプリを承認するには、OAuth 2.0 クライアントを作成します。 あります。

署名鍵のフィンガープリントを決定する

OAuth 2.0 クライアント ID は、アプリの署名鍵のフィンガープリントを使用して、 。

デバッグ用の署名フィンガープリントを取得する方法

プロジェクトを実行またはデバッグする際、Android SDK Tools は 生成されたデバッグ用証明書をアプリに含めることができます。

次のコマンドを使用して、デバッグ用証明書のフィンガープリントを取得します。

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Mac/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
をご覧ください。 <ph type="x-smartling-placeholder">
</ph>
Windows
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

keytool ユーティリティにより、キーストアのパスワードの入力を求められます。「 デバッグ キーストアのデフォルトのパスワードは android です。keytool ユーティリティは、 フィンガープリントをターミナルに出力します。例:

   Certificate fingerprint: SHA1: <strong>DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

キーストアから署名フィンガープリントを取得する方法

キーストア ファイルがある場合は、keytool ユーティリティを使用してフィンガープリントを確認します。

keytool -list -v -alias your-key-name -keystore path-to-production-keystore

keytool ユーティリティはフィンガープリントをターミナルに出力します。例:

   Certificate fingerprint: SHA1: DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

Play アプリ署名からアプリの署名鍵を取得する方法

Play アプリ署名を使用する場合は、 Google がアプリの署名鍵を管理し、APK の署名に使用します。 この鍵は署名フィンガープリントに使用する必要があります。

  1. Google Play Console の [アプリ署名] ページで、[アプリ署名鍵の証明書] までスクロールします。
  2. SHA-1 証明書フィンガープリントを使用します。

OAuth 2.0 クライアント ID を作成する

前の手順の該当する署名鍵ごとに、OAuth 2.0 クライアント ID を Google Cloud プロジェクトの認証情報。

  • Google Cloud で、[認証情報] ページを開きます。

    認証情報

  • [認証情報を作成] をクリックし、メニューから [OAuth クライアント ID] を選択します。

  • 以下の必須項目を入力します。

    • アプリのタイプ: [Android] を選択します。
    • Package name: AndroidManifest.xml で宣言されているパッケージ名を使用します。
    • SHA-1 証明書フィンガープリント: 前の手順で取得したフィンガープリントを使用します。
  • [作成] をクリックします。

必要なライブラリを含める

  1. アプリの依存関係に com.google.android.gms:play-services-auth:16+ を含めます。
  2. コードの圧縮を使用している場合は、 これをアプリの build.gradle ファイルに追加します。

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. アプリの proguard-rules.pro ファイルに次の行を追加します。

    -keep class com.google.android.gms.common.** { *; }
    -keep class com.google.android.gms.location.** { *; }
    -keep class com.google.android.gms.auth.** { *; }
    -keep class com.google.android.gms.tasks.** { *; }
    

これで、アプリがキーなし認証を使用するように構成されました。

キーレス

ARCore は、(JSON Web あります)。トークンは、Google Cloud のデジタル サービス サービス アカウント。

iOS 用のトークンを生成するには、サーバーにエンドポイントが必要です 次の要件を満たす必要があります。

  • 独自の認可メカニズムでエンドポイントを保護する必要があります。

  • エンドポイントは、次のように新しいトークンを毎回生成する必要があります。

    • 各ユーザーは一意のトークンを取得します。
    • トークンはすぐには期限切れになりません。

サービス アカウントと署名鍵を作成する

Google サービス アカウントと署名鍵を作成する手順は次のとおりです。

  1. Google Cloud で、[認証情報] ページを開きます。
    認証情報
  2. [認証情報を作成 >サービス アカウント
  3. [サービス アカウントの詳細] で、新しいアカウントの名前を入力して、[ 作成:
  4. [サービス アカウントの権限] ページで、[ロールを選択] プルダウンに移動します。 [サービス アカウント >サービス アカウント トークン作成者] をクリックし、 続行。
  5. [ユーザーにこのサービス アカウントへのアクセスを許可] ページで、[完了] をクリックします。
  6. 認証情報 [サービス アカウント] セクションで目的のアカウント名をクリックし、 作成します。
  7. [サービス アカウントの詳細] ページで、[キー] セクションまで下にスクロールし、 [鍵を追加 >新しい鍵を作成する
  8. 鍵のタイプとして [JSON] を選択し、[作成] をクリックします。

    秘密鍵を含む JSON ファイルがマシンにダウンロードされます。保存 ダウンロードした JSON キーファイルを安全な場所に保管します。

サーバーでトークンを作成する

サーバーで新しいトークン(JWT)を作成するには、標準の JWT を使用します。 ライブラリ 新しいサービス アカウントから安全にダウンロードした JSON ファイルと、

開発マシンでトークンを作成する

開発マシンで JWT を生成するには、次のコマンドを使用します。 oauth2l コマンド:

oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

--cache フラグを使用して空のキャッシュ ロケーションを指定する必要があります。 毎回異なるトークンが生成されるようにします。必ず 結果の文字列です。余分なスペースや改行文字を入力すると、API の動作が 拒否することもできます。

トークンに署名する

JWT に署名するには、RS256 アルゴリズムと次のクレームを使用する必要があります。

  • iss - サービス アカウントのメールアドレス。
  • sub - サービス アカウントのメールアドレス。
  • iat - トークンが生成されたときの Unix エポック時間(秒単位)。
  • exp - iat + 3600(1 時間)トークンが期限切れになる Unix エポック時刻。 秒単位で分析できます
  • aud - オーディエンス。次のように設定する必要があります。 https://arcore.googleapis.com/

JWT ペイロードには標準以外のクレームは必要ありませんが、 uid クレームは、対応するユーザーの識別に役立ちます。

Google Cloud コンソールを使用するなど、異なる方法で JWT を生成する場合は、 使用する場合は、必ずクレームで JWT に署名してください。 説明します。何よりも、対象者が正しいことを確認してください。

ARCore セッションでトークンを渡す

  1. [iOS Authentication Strategy] が以下に設定されていることを確認してください AuthenticationToken。Unity で [Edit] >プロジェクト設定 > XR プラグイン管理 > ARCore 拡張機能。[iOS Authentication Strategy] プルダウンで、 メニューで [Authentication Token] オプションを選択します。
  2. トークンを取得したら、次のコマンドを使用して ARCore セッションに渡します。 ARAnchorManager.SetAuthToken():

    // Designate the token to authorize ARCore API calls
    // on the iOS platform. This should be called each time the application's token is refreshed.
    ARAnchorManager.SetAuthToken(authToken);
    

これで、アプリがキーなし認証を使用するように構成されました。

トークンをセッションに渡すときは、次の点に注意してください。

  • API キーを使用してセッションを作成した場合、ARCore は エラーをログに記録します。

    API キーが不要になった場合は、Google Developers コンソールから削除し、 。

  • ARCore は、スペースまたは特殊文字を含むトークンを無視します。

  • トークンは通常、1 時間後に期限切れになります。なんらかの理由で、 トークンが使用中の間に期限切れになる場合は、新しいトークンを取得して API に渡します。

API キー

  1. Google Cloud で、[認証情報] ページを開きます。
    認証情報
  2. [認証情報の作成] を選択し、メニューから [API キー] を選択します。
    [API キーを作成しました] ダイアログに、新しく作成したキーの文字列が表示されます。
  3. Unity で [Edit] >プロジェクト設定 >XR プラグイン管理 > ARCore 拡張機能。ターゲット プラットフォーム(Android、iOS)ごとに、 [Authentication Strategy] プルダウン メニューから [API Key] オプションを選択します。その後、 [API キー] フィールドに API キーを挿入します。

  4. API キーの制限に関するドキュメントを確認する して、API キーを保護します。

これで、アプリが API キーを使用するように構成されました。

次のステップ

認可を構成したら、以下を使用する ARCore 機能を確認してください。 説明します。