ステートメント リストは、既知の場所にある JSON エンコードのファイルまたはスニペットです。
ステートメント リストの場所
このリストを保存する場所については、ステートメント リストの作成をご覧ください。
構文
ステートメント リストまたはスニペットは、1 つ以上のウェブサイトまたはアプリのステートメントの JSON 配列(JSON オブジェクト)で構成されます。これらのステートメントは任意の順序で指定できます。一般的な構文は次のとおりです。
[ { "relation": ["relation_string "], "target": {target_object } } , ... ]
- relation
- ターゲットに関して宣言される関係を記述する 1 つ以上の文字列の配列。定義済みの関係文字列のリストをご覧ください。例:
delegate_permission/common.handle_all_urls
- ターゲット
- このステートメントが適用されるターゲット アセット。使用可能なターゲット タイプ:
<ph type="x-smartling-placeholder">
- </ph>
-
ウェブサイト ターゲット "target": { "namespace": "web", "site": "
site_root_url " }- namespace
- ウェブサイトの場合は
web
にする必要があります。 - サイト
- ステートメントのターゲットとなるサイトの URI(
http[s]://<hostname>[:<port>]
形式)。<hostname> は完全修飾する必要があります。HTTP にポート 80 を使用する場合、または HTTPS にポート 443 を使用する場合は、<port> を省略する必要があります。ウェブサイトのターゲットにはルートドメインのみを指定できます。特定のサブディレクトリに限定することはできません。すべてのディレクトリが一致します。サブドメインは一致と見なされません。つまり、記述ファイルが www.example.com でホストされている場合、www.puppies.example.com は一致と見なされません。ウェブサイト ターゲット マッチングのルールと例については、ターゲットに関するドキュメントをご覧ください。例:http://www.example.com
-
Android アプリ ターゲット "target": { "namespace": "android_app", "package_name": "
fully_qualified_package_name ", "sha256_cert_fingerprints": ["cert_fingerprint "] }- namespace
- Android アプリの場合は
android_app
にする必要があります。 - package_name
- このステートメントが適用されるアプリの完全修飾パッケージ名。例:
com.google.android.apps.maps
- sha256_cert_fingerprints
- この証明書が参照するアプリの証明書の大文字の SHA265 フィンガープリント
ステートメントです。次のように、
openssl
または Java のkeytool
を使用して計算できます。 <ph type="x-smartling-placeholder">- </ph>
openssl x509 -in $CERTFILE -noout -fingerprint -sha256
keytool -printcert -file $CERTFILE | grep 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"]
。Play アプリ署名を使用している場合 この場合、
keytool
を実行して生成された証明書フィンガープリント ローカルのopenssl
は通常、ローカルの ユーザーできます。アプリで Play アプリ署名を使用しているかどうかは、 Google Play Console デベロッパー アカウント Release > Setup > App Integrity未満追加すれば アプリの正しいデジタル アセット リンクの JSON スニペットも できます。
-
ステートメント リストの例
ウェブサイトとアプリの両方に関するステートメントを含むウェブサイト ステートメント リストの例を以下に示します。http://example.digitalassetlinks.org/.well-known/assetlinks.json
数十個以上のステートメントへのスケーリング
場合によっては、プリンシパルは多数の異なるステートメントを行いたいことがあります さまざまなターゲットに関する記述があり、 異なるプリンシパルを同じターゲット セットに割り当てます。たとえば、ウェブサイトは 国ごとに多数の異なるトップレベル ドメインで利用でき、 同じモバイルアプリについて言及するとよいでしょう
このような場合は、include ステートメントが役立ちます。このメカニズムを使用すると、さまざまなプリンシパルからリソースへのポインタを設定でき、 すべてのプリンシパルのステートメントを定義する、一元的な場所。
たとえば、一元化された場所を「https://example.com/includedstatements.json」に設定できます。このファイルには、上記の例と同じ内容を含めるように設定できます。
ウェブサイトからインクルード ファイルへのポインタを設定するには、https://example.com/.well-known/assetlinks.json を次のように変更します。
[{ "include": "https://example.com/includedstatements.json" }]
Android アプリからインクルードへのポインタを設定するには `res/values/strings.xml` を次のように変更します。
<resources> ... <string name="asset_statements"> [{ \"include\": \"https://example.com/includedstatements.json\" }] </string> </resources>
より詳しく
ステートメント リストの形式と基盤となるコンセプトの詳細については、仕様書をご覧ください。