ステートメント リストの構文
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ステートメント リストは、既知の場所にある JSON エンコード ファイルまたはスニペットです。
ステートメント リストの場所
このリストの保存場所については、ステートメント リストを作成する をご覧ください。
構文
ステートメント リストまたはスニペットは、1 つ以上のウェブサイトまたはアプリのステートメントを JSON オブジェクトとして含む JSON 配列で構成されます。これらのステートメントは任意の順序で記述できます。一般的な構文は次のとおりです。
[
{
"relation": ["relation_string "],
"target": {target_object }
} , ...
]
relation
target に関して宣言される関係を記述する 1 つ以上の文字列の配列。定義済みの関係文字列 のリストをご覧ください。例: delegate_permission/common.handle_all_urls
ターゲット
このステートメントが適用されるターゲット アセット。使用可能なターゲット タイプ:
ウェブサイトのターゲット
"target" : {
"namespace" : "web" ,
"site" : "site_root_url "
}
名前空間
ウェブサイトの場合は 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 " ]
}
名前空間
Android アプリの場合、android_app
である必要があります。
package_name
このステートメントが適用されるアプリの完全修飾パッケージ名。例: com.google.android.apps.maps
sha256_cert_fingerprints
このステートメントが適用されるアプリの証明書の大文字の SHA265 フィンガープリント 。これは、次のように
openssl
または Java keytool
を使用して計算できます。
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 スニペットも表示されます。
relation_extensions(省略可)
ステートメントにオプションの relation_extensions
フィールドを追加して、付与する権限と関連付けに関する詳細情報を提供できます。このフィールドは、各キーがリレーション文字列で、値がそのリレーションの拡張機能を含むオブジェクトであるオブジェクトにする必要があります。これらのステートメントをリクエストするクライアントは、これらのフィールドを尊重するように更新する必要があります。
たとえば、delegate_permission/common.handle_all_urls
関係の relation_extensions
は次のようになります。
{
"relation" : [ "delegate_permission/common.handle_all_urls" ],
"target" : {
"namespace" : "android_app" ,
"package_name" : "com.example.app" ,
"sha256_cert_fingerprints" : [ "..." ]
},
"relation_extensions" : {
"delegate_permission/common.handle_all_urls" : {...}
}
}
DAL API は、リクエストで return_relation_extensions=true
パラメータが設定されている場合、API 呼び出しで relation_extensions を返すことをサポートしています。
ステートメント リストの例
ウェブサイトとアプリの両方に関するステートメントを含むウェブサイト ステートメント リストの例: http://example.digitalassetlinks.org/.well-known/assetlinks.json
数十以上のステートメントにスケーリングする
プリンシパルが異なるターゲットについて多くの異なるステートメントを作成したい場合や、異なるプリンシパルから同じターゲットのセットにステートメントを発行する必要がある場合があります。たとえば、ウェブサイトが国別のトップレベル ドメインで多数利用可能であり、それらすべてが同じモバイルアプリについて言及したい場合があります。
このような場合は、include ステートメント が役立ちます。このメカニズムを使用すると、さまざまなプリンシパルから 1 つの中心的な場所にポインタを設定できます。この場所では、すべてのプリンシパルのステートメントが定義されます。
注: 完全なステートメント リスト ツリーでは、最大 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>
ステートメント リストの形式と基盤となるコンセプトの詳細については、仕様ドキュメント をご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンス により使用許諾されます。コードサンプルは Apache 2.0 ライセンス により使用許諾されます。詳しくは、Google Developers サイトのポリシー をご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-09-09 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-09-09 UTC。"],[[["\u003cp\u003eA statement list is a JSON file that describes relationships between websites and Android apps, used for features like Digital Asset Links.\u003c/p\u003e\n"],["\u003cp\u003eThe list consists of statements with "relation" and "target" fields, where "target" can be a website or an Android app.\u003c/p\u003e\n"],["\u003cp\u003eWebsite targets are specified using a "site" field with a URL, while Android app targets use "package_name" and "sha256_cert_fingerprints".\u003c/p\u003e\n"],["\u003cp\u003eFor many statements, use "include" to point to a central file to avoid redundancy and simplify management.\u003c/p\u003e\n"],["\u003cp\u003eDetailed syntax and examples are provided to guide you in creating and using statement lists effectively.\u003c/p\u003e\n"]]],[],null,[]]