ステートメント リストは、既知の場所にある 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 ステートメント が役立ちます。このメカニズムを使用すると、さまざまなプリンシパルからリソースへのポインタを設定でき、
すべてのプリンシパルのステートメントを定義する、一元的な場所。
注: 1 つの完全な URL で最大 10 個の include ステートメントを使用できます。
ステートメントリストツリーです。つまり、ツリー内のファイルの最大数は、(10 個のステートメント ファイル)+(ルート ステートメント ファイル)= 合計 11 個です。たとえば、一元化された場所を「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>
ステートメント リストの形式と基盤となるコンセプトの詳細については、仕様書 をご覧ください。