Syntaxe de la liste d'instructions

Une liste d'instructions est un fichier ou un extrait encodé au format JSON dans un emplacement connu.

Emplacement de la liste des relevés

Pour savoir où stocker cette liste, consultez Créer une liste d'énoncés.

Syntaxe

La liste ou l'extrait d'instructions se compose d'un tableau JSON d'une ou plusieurs instructions de site Web ou d'application sous forme d'objets JSON. Ces instructions peuvent être dans n'importe quel ordre. Voici la syntaxe générale :

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
 : tableau d'une ou de plusieurs chaînes décrivant la relation déclarée à propos de la cible. Consultez la liste des chaînes de relations définies. Exemple : delegate_permission/common.handle_all_urls
cible
 Composant cible auquel s'applique cette déclaration. Types de cibles disponibles :
relation_extensions (facultatif)

Vous pouvez ajouter un champ relation_extensions facultatif à une instruction pour fournir plus d'informations sur les autorisations et les associations que vous souhaitez accorder. Ce champ doit être un objet dans lequel chaque clé est une chaîne de relation et la valeur est un objet contenant les extensions de cette relation. Les clients qui demandent ces relevés doivent être mis à jour pour respecter ces champs.

Par exemple, relation_extensions pour la relation delegate_permission/common.handle_all_urls peut ressembler à ceci :

  {
    "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": {...}
    }
  }
  

L'API DAL permet de renvoyer des relation_extensions dans les appels d'API lorsque le paramètre return_relation_extensions=true est défini dans la requête.

Exemple de liste d'énoncés

Voici un exemple de liste d'énoncés de site Web contenant des énoncés sur les sites Web et les applications : http://example.digitalassetlinks.org/.well-known/assetlinks.json

Passer à des dizaines de relevés ou plus

Dans certains cas, un principal peut souhaiter faire de nombreuses déclarations différentes sur différentes cibles, ou il peut être nécessaire d'émettre des déclarations de différents principaux vers le même ensemble de cibles. Par exemple, un site Web peut être disponible sur de nombreux domaines de premier niveau différents par pays, et tous peuvent vouloir faire une déclaration sur la même application mobile.

Dans ces situations, les instructions include peuvent être utiles. Ce mécanisme vous permet de configurer des pointeurs de nombreux principaux différents vers un emplacement central qui définit des instructions pour tous les principaux.

Par exemple, vous pouvez décider que l'emplacement central doit être `https://example.com/includedstatements.json`. Ce fichier peut être configuré pour contenir le même contenu que dans les exemples ci-dessus.

Pour configurer un pointeur d'un site Web vers le fichier d'inclusion, remplacez `https://example.com/.well-known/assetlinks.json` par :

[{
  "include": "https://example.com/includedstatements.json"
}]

Pour configurer un pointeur d'une application Android vers le fichier include, remplacez `res/values/strings.xml` par :

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

Plus d'infos

Pour obtenir une explication plus détaillée du format de la liste des instructions et des concepts sous-jacents, consultez notre document de spécifications.