Sintaxis de la lista de instrucciones

Una lista de sentencias es un archivo o fragmento codificado en JSON en una ubicación conocida.

Ubicación de la lista de instrucciones

Consulta Cómo crear una lista de instrucciones para saber dónde se debe almacenar esta lista.

Sintaxis

La lista o el fragmento de declaraciones consta de un array JSON de una o más declaraciones de sitios web o aplicaciones como objetos JSON. Estas instrucciones pueden estar en cualquier orden. Esta es la sintaxis general:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
Es un array de una o más cadenas que describen la relación que se declara sobre el objetivo. Consulta la lista de cadenas de relación definidas. Ejemplo: delegate_permission/common.handle_all_urls
objetivo
Es el activo objetivo al que se aplica esta declaración. Tipos de segmentación disponibles:
relation_extensions (opcional)

Puedes agregar un campo relation_extensions opcional a una instrucción para proporcionar más información sobre los permisos y las asociaciones que deseas otorgar. Este campo debe ser un objeto en el que cada clave sea una cadena de relación y el valor sea un objeto que contenga las extensiones para esa relación. Los clientes que solicitan estas declaraciones deben actualizarse para respetar estos campos.

Por ejemplo, relation_extensions para la relación delegate_permission/common.handle_all_urls puede verse de la siguiente manera:

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

La API de DAL admite la devolución de relation_extensions en las llamadas a la API cuando el parámetro return_relation_extensions=true se establece en la solicitud.

Lista de ejemplos de declaraciones

Aquí tienes un ejemplo de una lista de instrucciones del sitio web que contiene instrucciones sobre sitios web y apps: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Escalar a decenas de declaraciones o más

En algunos casos, es posible que un principal desee hacer muchas declaraciones diferentes sobre diferentes destinos, o bien que sea necesario emitir declaraciones de diferentes principales para el mismo conjunto de destinos. Por ejemplo, un sitio web puede estar disponible en muchos dominios de nivel superior diferentes por país, y todos ellos pueden querer hacer una declaración sobre la misma app para dispositivos móviles.

En estas situaciones, las instrucciones include pueden ser útiles. Con este mecanismo, puedes configurar punteros desde muchas entidades principales diferentes hacia una ubicación central, que define instrucciones para todas las entidades principales.

Por ejemplo, puedes decidir que la ubicación central sea `https://example.com/includedstatements.json`. Este archivo se puede configurar para que contenga el mismo contenido que en los ejemplos anteriores.

Para configurar un puntero desde un sitio web al archivo de inclusión, cambia "https://example.com/.well-known/assetlinks.json" por lo siguiente:

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

Para configurar un puntero desde una app para Android al archivo de inclusión, cambia `res/values/strings.xml` a lo siguiente:

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

Más información

En nuestro documento de especificaciones, se incluye una explicación más detallada del formato de la lista de instrucciones y los conceptos subyacentes.