Package google.digitalassetlinks.v1

索引

声明文

この API サービスは「ステートメント」を提供します。ステートメントとは、アセット所有者がアセットリンクに関する情報を公開するために使用する手段です。この API を使用すると、ステートメントをソースから直接取得することなく、簡単かつ安全な方法で取得できます。

この API から返されるすべてのステートメントは、他のデジタル アセットに関するデジタル アセット(ウェブサイトや Android アプリなど)に代わって行われたものです。各ステートメントには、ソースアセット、ターゲット アセット、1 つ以上のリレーションが含まれます。

リレーションは、ソースアセットによって申し立てられている 2 つのアセット間の関係を表します。このような関係の例として、権限や権限の委任があります。

リスト

rpc List(ListRequest) returns (ListResponse)

指定したターゲットとステートメントの文字列に一致する、指定したソースからすべてのステートメントのリストを取得します。

この API は、デジタル アセット リンクの技術仕様に記載されているように、安全なソースアセット(HTTPS ウェブサイトやアプリなど)に関するすべてのステートメントが、それらのアセットの所有者によって安全な方法で作成されていることが保証されます。特に、安全でないウェブサイト(URL が https:// ではなく http:// で始まるウェブサイト)では、このような保証はできないことにご注意ください。

List コマンドは、API クライアントが 2 つのアセットの関係性をすべて把握する場合や、特定のソースアセットからすべての関係を列挙する場合に特に便利です。例: ユーザーが関連アイテムに移動できるようにする機能。この機能により、デバイス上でモバイルアプリを実行しているときに、対応するウェブサイトまたは Google+ プロフィールに簡単にアクセスできるようになります。

AndroidAppAsset

Android アプリアセットを表します。

フィールド名 タイプ 説明
package_name string Android アプリアセットは、Java パッケージ名で識別されます。たとえば、Google マップ アプリでは、パッケージ名 com.google.android.apps.maps が使用されます。REQUIRED
certificate CertificateInfo

パッケージ名の一意性にはグローバルな適用がなされていないため、署名証明書も必要です。署名証明書は、パッケージ名と組み合わせればアプリを一意に識別できます。

一部のアプリでは署名鍵がローテーションされているため、時間の経過とともに異なる鍵で署名される可能性があります。(パッケージ名、証明書)を一意の ID として使用するため、これらは個別のアセットとして扱われます。どちらのバージョンのアプリでも、同じまたは似たような記述をするので、通常は問題になりません。ただし、アプリに関するステートメントを作成する他のアセットは、キーがローテーションされたときに更新する必要があります。

(ステートメントを公開およびクエリするための構文には糖衣構文が含まれているため、複数の証明書で認識されるアプリを簡単に指定できます)。REQUIRED

CertificateInfo

X509 証明書を表します。

フィールド名 タイプ 説明
sha256_fingerprint string

証明書の大文字の SHA-265 フィンガープリント。PEM 証明書から、次のようにして取得できます。

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

または次のような形式にします。

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

この例では、このフィールドの内容は 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5 になります。

これらのツールを使用できない場合は、PEM 証明書を DER 形式に変換し、その文字列の SHA-256 ハッシュを計算して、結果を 16 進文字列(各オクテットの大文字の 16 進数表現をコロンで区切ったもの)として表すことができます。

アセット

アセットを一意に識別します。

デジタル アセットとは、識別可能でアドレス指定可能なオンライン エンティティで、通常はなんらかのサービスやコンテンツを提供します。アセットの例としては、ウェブサイト、Android アプリ、Twitter フィード、Plus ページなどがあります。

フィールド名 タイプ 説明
Union フィールド。次のいずれかのみを指定できます。
web WebAsset ウェブアセットかどうかを設定します。
android_app AndroidAppAsset Android アプリアセットの場合に設定されます。

CheckRequest

特定のアセットリンクが存在するかどうかを確認するために使用されるメッセージ。

フィールド名 タイプ 説明
source Asset ステートメント リストをホストするソース。これは、Check() 呼び出しを適切なソースにルーティングするために使用されます。
relation string

リレーションのクエリ文字列。

リレーションは <kind>/<detail> という形式の文字列で識別されます。ここで、<kind> は定義済みの目的カテゴリのセットのいずれかである必要があります。<detail> は、ステートメントの特定のユースケースを表す自由形式の小文字の英数字の文字列です。

サポートされているリレーションの最新リストについては、Google の API ドキュメントをご覧ください。

クエリがアセットリンクと一致するには、クエリとアセットリンクのリレーション文字列の両方が正確に一致する必要があります。

例: リレーションが delegate_permission/common.handle_all_urls のクエリは、リレーションが delegate_permission/common.handle_all_urls のアセットリンクと一致します。

target Asset ステートメントのターゲット アセット。

CheckResponse

CheckAssetLinks 呼び出しに対するレスポンス メッセージ。

フィールド名 タイプ 説明
linked bool リクエストで指定されたアセットが、リクエストで指定されたリレーションによってリンクされている場合は true に設定します。REQUIRED
max_age Duration サービング時刻から、更新を行わない限り、レスポンスが有効とみなされるまでの時間。REQUIRED
debug_string string

エンドユーザーが結果を理解、再現、デバッグするのに役立つ情報を含む、人が読める形式のメッセージ。

メッセージは英語で表示され、現時点では翻訳の提供は予定しておりません。

この文字列の内容や形式が保証されるわけではありません。本コンテンツのあらゆる側面は、予告なく変更される場合があります。このデータをプログラムで解析しないでください。必要な情報が API によって公開されないために、この操作が必要だと思われる場合は、まず Google までご連絡ください。

ListRequest

指定されたソースと関係を持つすべての既知のステートメントをリクエストするために使用されるメッセージ。

フィールド名 タイプ 説明
source Asset ステートメント リストをホストするソース。これは、List() リクエストを適切なソースに転送するために使用されます。REQUIRED
relation string

指定した関係に一致する関連付けのみを使用します。

リレーション文字列の詳細な定義については、Statement メッセージをご覧ください。

クエリがステートメントと一致するには、次のいずれかに該当する必要があります。

  • クエリとステートメントのリレーション文字列の両方が完全一致する。または
  • クエリの関係文字列が空であるか、存在しません。

例: リレーションが delegate_permission/common.handle_all_urls のクエリは、リレーションが delegate_permission/common.handle_all_urls のアセットリンクと一致します。

ListResponse

List 呼び出しに対するレスポンス メッセージ。

フィールド名 タイプ 説明
statements Statement 見つかったすべての一致するステートメントのリスト。
max_age Duration サービング時刻から、更新を行わない限り、レスポンスが有効とみなされるまでの時間。REQUIRED
debug_string string

エンドユーザーが結果を理解、再現、デバッグするのに役立つ情報を含む、人が読める形式のメッセージ。

メッセージは英語で表示され、現時点では翻訳の提供は予定しておりません。

この文字列の内容や形式が保証されるわけではありません。本コンテンツのあらゆる側面は、予告なく変更される場合があります。このデータをプログラムで解析しないでください。必要な情報が API によって公開されないために、この操作が必要だと思われる場合は、まず Google までご連絡ください。

説明

ソースアセットとターゲット アセットの関係について、信頼できる記述を記述する。

ステートメントは常にソースアセットによって、直接、または他の場所に保存されているステートメント リストに委任することによって作成されます。

ステートメントとアセットの定義について詳しくは、API ドキュメントのランディング ページをご覧ください。

フィールド名 タイプ 説明
source Asset すべてのステートメントにはソースアセットがあります。REQUIRED
relation string

この関係により、ソースアセットの所有者(つまり、ステートメントを発行した個人またはエンティティ)の意図したステートメントの使用が識別されます。完全なステートメントには、それぞれ関係があります。

リレーションは <kind>/<detail> という形式の文字列で識別されます。ここで、<kind> は定義済みの目的カテゴリのセットのいずれかである必要があります。<detail> は、ステートメントの特定のユースケースを表す自由形式の小文字の英数字の文字列です。

サポートされているリレーションの最新リストについては、Google の API ドキュメントをご覧ください。

例: delegate_permission/common.handle_all_urls 必須

target Asset すべてのステートメントにはターゲット アセットがあります。REQUIRED

WebAsset

ウェブアセットを表します。

フィールド名 タイプ 説明
site string

ウェブアセットは、スキーム、ホスト名、ポート部分のみを含む URL で識別されます。形式は

http[s]://<hostname>[:<port>]

ホスト名は完全修飾する必要があります。末尾は 1 つのピリオド(「.」)にする必要があります。

現在のところ、「http」と「https」のスキームのみを使用できます。

ポート番号は 10 進数で示されます。標準のポート番号を使用する場合は省略する必要があります(HTTP の場合は 80、HTTPS の場合は 443)。

この制限付き URL を「サイト」と呼びます。同じスキーム、ホスト名、ポートを共有する URL はすべて、サイトの一部と見なされるため、ウェブアセットに属します。

例: サイト https://www.google.com のアセットに次の URL がすべて含まれているとします。

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

次の URL は含まれていません。

  • http://www.google.com/(スキームが間違っています)
  • https://google.com/(ホスト名が一致しません)
  • https://www.google.com:444/(ポートが一致しない)必須