Package google.digitalassetlinks.v1

索引

明細書

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

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

この関係は、ソースアセットによって申請された 2 つのアセット間の関係を表します。このような関係の例として、権限の委任などがあります。

リスト

rpc List(ListRequest) returns (ListResponse)

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

この API は、Digital Asset Links 技術仕様に記載されているとおり、セキュア ソース アセット(HTTPS ウェブサイトや Android アプリなど)を持つすべてのステートメントが、それらのアセットの所有者によって安全に行われたことを保証します。特に、安全でないウェブサイト(URL が https:// ではなく http:// で始まっているウェブサイト)の場合、この保証は行えませんのでご注意ください。

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

Android アプリアセット

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

フィールド名 タイプ 説明
package_name string Android App のアセットは、当然 Java パッケージ名で識別されます。たとえば、Google マップ アプリでは「com.google.android.apps.maps」というパッケージ名が使用されています。必須かどうか
certificate CertificateInfo

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

一部のアプリの署名鍵はローテーションされるため、時間の経過とともに別の鍵で署名される場合があります。パッケージ名(パッケージ名、証明書)を一意の ID として使用するため、これらは個別のアセットとして扱われます。通常は両方のバージョンのアプリで同じ(または類似した)ステートメントが行われるため、これによって問題が生じることはありません。ただし、アプリに関するステートメントを作成するアセットは、鍵のローテーション時に更新する必要があります。

(ステートメントを公開してクエリを実行する構文には、糖衣構文が含まれています。この構文を使用すると、複数の証明書で認識されるアプリを簡単に指定できます)。必須かどうか

証明書情報

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 Pages などがあります。

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

CheckRequest

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

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

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

Google では、<kind>/<detail> という形式の文字列とのリレーションを特定します。<kind> は事前定義済みの目的のカテゴリセットの一つで、<detail> はステートメントの特定のユースケースを説明する自由形式の小文字の英数字の文字列です。

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

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

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

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

CheckResponse

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

フィールド名 タイプ 説明
linked bool リクエストで指定されたアセットが、リクエストで指定されたリレーションによってリンクされている場合は true に設定します。必須かどうか
max_age Duration 配信から、さらに有効な更新がない場合にレスポンスが有効な期間としてみなされます。必須かどうか
debug_string string

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

このメッセージは英語で送信されます。翻訳は提供されません。

この文字列の内容や形式について、保証するものではありません。予告なく変更される場合があります。このデータをプログラムで解析しないでください。必要な情報が API によって公開されていないためにこの手続きが必要であると思われる場合は、まず Google までお問い合わせください。

ListRequest

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

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

指定したリレーションに一致する関連付けのみを使用します。

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

クエリとステートメントを一致させるには、次のいずれかの条件を満たす必要があります。

  • クエリとステートメントのリレーション文字列の両方が完全に一致している
  • クエリのリレーション文字列が空であるか、指定されていません。

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

ListResponse

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

フィールド名 タイプ 説明
statements Statement 検出されたすべての一致するステートメントのリスト。
max_age Duration 配信から、さらに有効な更新がない場合にレスポンスが有効な期間としてみなされます。必須かどうか
debug_string string

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

このメッセージは英語で送信されます。翻訳は提供されません。

この文字列の内容や形式について、保証するものではありません。予告なく変更される場合があります。このデータをプログラムで解析しないでください。必要な情報が API によって公開されていないためにこの手続きが必要であると思われる場合は、まず Google までお問い合わせください。

説明

ソースアセットとターゲット アセットの関係について記述した信頼性の高い文についての説明。

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

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

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

関係は、ソース アセットの所有者(つまり、ステートメントを発行した個人や団体)が意図したとおりにステートメントを使用していることを確認します。すべての完成品には関係があります。

Google では、<kind>/<detail> という形式の文字列とのリレーションを特定します。<kind> は事前定義済みの目的のカテゴリセットの一つで、<detail> はステートメントの特定のユースケースを説明する自由形式の小文字の英数字の文字列です。

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

例: delegate_permission/common.handle_all_urls 必須

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

ウェブアセット

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

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

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

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

ホスト名は完全修飾され、単一のピリオド(「.」)で終わる必要があります。

現在のところ、「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/(ポートが一致しません)必須