Google Cloud で ARCore API を使用する

プラットフォームを選択:

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

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

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

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

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

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

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

ARCore API を有効にする

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

ARCore API を有効にする

認証方法を設定する

iOS アプリケーションは、次の 2 つの異なる認証方法(推奨されるキーレス認証と API キー認証)を使用して ARCore API と通信できます。

  • キーレス認証では、API へのアクセスを制御するために署名されたトークンが使用されます。この方法では、トークンに署名して API へのアクセスを制御するために、ユーザーが所有するサーバーが必要です。
  • API キーは、Google Cloud プロジェクトを識別する文字列です。API キーは通常、クライアントからアクセス可能であるため、安全とはみなされません。トークン認証を使用して ARCore API と通信することを検討してください。

キーレス

ARCore は、(JSON Web Token)を使用して iOS での API 呼び出しの認可をサポートしています。トークンは Google サービス アカウントによって署名されている必要があります。

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 マネージド環境で Google API を使用するなど、別の方法で JWT を生成する場合は、このセクションのクレームを使用して JWT に署名してください。何よりも、対象ユーザーが正しいことを確認してください。

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

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

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

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

    API キーが不要になった場合は、Google Developers Console で削除し、アプリから削除します。

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

  • トークンは通常 1 時間後に期限切れになります。使用中にトークンの有効期限が切れる可能性がある場合は、新しいトークンを取得して API に渡します。

API キー

  1. Google Cloud で、[認証情報] ページを開きます。
    認証情報
  2. [認証情報の作成] を選択し、メニューから [API キー] を選択します。
    [API キーを作成しました] ダイアログに、新しく作成されたキーの文字列が表示されます。
  3. API キーの制限に関するドキュメントを確認して、API キーを保護します。

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

次のステップ

承認が構成されたら、それを使用する次の ARCore 機能を確認します。