Package google.digitalassetlinks.v1

Índice

Declaraciones

Este servicio de API entrega "sentencias", que son los vehículos que usan los propietarios de los activos para publicar información sobre los vínculos de sus recursos. La API se puede usar para recuperar sentencias de manera simple y segura, sin necesidad de adquirir las sentencias directamente de las fuentes.

Todas las declaraciones que devuelve esta API se realizaron en nombre de recursos digitales (por ejemplo, sitios web o apps para Android) sobre otros recursos digitales. Cada sentencia contiene un recurso de origen, un recurso de destino y una o más relaciones.

Esta relación describe la relación entre los dos activos tal como lo reclama el activo de origen. Un ejemplo de estas relaciones es la delegación de privilegios o permisos.

Ir a la lista

rpc List(ListRequest) returns (ListResponse)

Recupera una lista de todas las sentencias de una fuente determinada que coinciden con el objetivo y la cadena de instrucción especificados.

La API garantiza que todas las declaraciones con recursos de fuente segura, como sitios web HTTPS o apps para Android, hayan sido realizadas de manera segura por el propietario de esos recursos, como se describe en la especificación de diseño técnico de Vínculos de recursos digitales. Específicamente, debes tener en cuenta que no se puede garantizar esta garantía en el caso de los sitios web no seguros (es decir, en los que la URL comienza con http:// en lugar de https://).

El comando List es más útil cuando el cliente de la API desea conocer todas las formas en que dos elementos están relacionados o enumerar todas las relaciones de un recurso de origen en particular. Ejemplo: una función que ayuda a los usuarios a navegar a elementos relacionados. Cuando una aplicación móvil se ejecuta en un dispositivo, la función facilita la navegación al sitio web o al perfil de Google+ correspondiente.

AndroidAppAsset

Describe un recurso de app para Android.

Nombre del campo Tipo Descripción
package_name string Los recursos de apps para Android se identifican naturalmente por su nombre de paquete de Java. Por ejemplo, la app de Google Maps usa el nombre de paquete com.google.android.apps.maps. REQUIRED
certificate CertificateInfo

Debido a que no existe una aplicación global de la exclusividad de nombre de paquete, también necesitamos un certificado de firma, que, combinado con el nombre del paquete, identifica una app de manera única.

Las claves de firma de algunas apps se rotan, por lo que es posible que se firmen con diferentes claves a lo largo del tiempo. Consideramos que son elementos distintos, ya que los utilizamos (nombre del paquete, certificado) como el ID único. Por lo general, esto no debería suponer ningún problema, ya que ambas versiones de la app harán las mismas declaraciones o similares. Sin embargo, otros recursos que hagan declaraciones sobre la app deberán actualizarse cuando se rote una clave.

(Ten en cuenta que las sintaxis para publicar y consultar instrucciones contienen azúcar sintáctica para permitirte especificar fácilmente las apps que son conocidas por varios certificados). REQUIRED

CertificateInfo

Describe un certificado X509.

Nombre del campo Tipo Descripción
sha256_fingerprint string

La huella digital SHA-265 en mayúsculas del certificado. Desde el certificado PEM, se puede adquirir de la siguiente manera:

$ keytool -printcert -file $CERTFILE | grep SHA256:
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

o así:

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=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

En este ejemplo, el contenido de este campo sería 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.

Si estas herramientas no están disponibles, puedes convertir el certificado PEM al formato DER, calcular el hash SHA-256 de esa cadena y representar el resultado como una cadena hexadecimal (es decir, representaciones hexadecimales en mayúsculas de cada octeto, separadas por dos puntos).

Recurso

Identifica un activo de manera inequívoca.

Un activo digital es una entidad en línea identificable y direccionable que suele proporcionar algún servicio o contenido. Algunos ejemplos de recursos son los sitios web, las apps para Android, los feeds de Twitter y las páginas de Google+.

Nombre del campo Tipo Descripción
Campo de unión, solo uno de los siguientes:
web WebAsset Establece si se trata de un recurso web.
android_app AndroidAppAsset Establece si se trata de un recurso de app para Android.

CheckRequest

Es el mensaje que se usa para verificar la existencia de un vínculo de recurso específico.

Nombre del campo Tipo Descripción
source Asset La fuente que aloja la lista de declaraciones. Se usa para enrutar la llamada a Check() a la fuente correcta.
relation string

Cadena de consulta para la relación.

Identificamos relaciones con cadenas del formato <kind>/<detail>, en las que <kind> debe ser una de un conjunto de categorías de propósito predefinidas, y <detail> es una cadena alfanumérica en minúscula de formato libre que describe el caso de uso específico de la instrucción.

Consulta nuestra documentación de la API para ver la lista actual de relaciones admitidas.

Para que una consulta coincida con el vínculo de un elemento, las cadenas de relación de la consulta y del vínculo del elemento deben coincidir exactamente.

Ejemplo: Una consulta con la relación delegate_permission/common.handle_all_urls coincide con un vínculo de elementos con la relación delegate_permission/common.handle_all_urls.

target Asset Es el recurso objetivo del estado.

CheckResponse

Mensaje de respuesta para la llamada a CheckAssetLinks.

Nombre del campo Tipo Descripción
linked bool Se establece como verdadero si los activos especificados en la solicitud están vinculados mediante la relación especificada en la solicitud. REQUIRED
max_age Duration A partir del tiempo de publicación, indica durante cuánto tiempo la respuesta debe considerarse válida, excepto las actualizaciones adicionales. REQUIRED
debug_string string

Mensaje legible por humanos que contiene información destinada a ayudar a los usuarios finales a comprender, reproducir y depurar el resultado.

El mensaje se mostrará en inglés y, por el momento, no planeamos ofrecer ninguna traducción.

Ten en cuenta que no se garantiza el contenido ni el formato de esta cadena. Cualquier aspecto del documento puede estar sujeto a cambios sin previo aviso. No debes intentar analizar estos datos de forma programática. Si consideras que debes hacerlo porque la API no expone de otra manera la información que necesitas, primero comunícate con nosotros.

ListRequest

Es el mensaje que se usa para solicitar todas las declaraciones conocidas que tienen una fuente y una relación especificadas.

Nombre del campo Tipo Descripción
source Asset La fuente que aloja la lista de declaraciones. Se usa para dirigir la solicitud List() a la fuente correcta. REQUIRED
relation string

Usa solo asociaciones que coincidan con la relación especificada.

Consulta el mensaje Statement para obtener una definición detallada de las cadenas de relación.

Para que una consulta coincida con una afirmación, una de las siguientes opciones debe ser verdadera:

  • las cadenas de relación de la consulta y de la instrucción coinciden exactamente, o
  • la cadena de relación de la consulta está vacía o falta.

Ejemplo: Una consulta con la relación delegate_permission/common.handle_all_urls coincide con un vínculo de elementos con la relación delegate_permission/common.handle_all_urls.

ListResponse

Mensaje de respuesta para la llamada List.

Nombre del campo Tipo Descripción
statements Statement Una lista de todas las afirmaciones coincidentes que se encontraron.
max_age Duration A partir del tiempo de publicación, indica durante cuánto tiempo la respuesta debe considerarse válida, excepto las actualizaciones adicionales. REQUIRED
debug_string string

Mensaje legible por humanos que contiene información destinada a ayudar a los usuarios finales a comprender, reproducir y depurar el resultado.

El mensaje se mostrará en inglés y, por el momento, no planeamos ofrecer ninguna traducción.

Ten en cuenta que no se garantiza el contenido ni el formato de esta cadena. Cualquier aspecto del documento puede estar sujeto a cambios sin previo aviso. No debes intentar analizar estos datos de forma programática. Si consideras que debes hacerlo porque la API no expone de otra manera la información que necesitas, primero comunícate con nosotros.

Declaración

Describe una afirmación confiable sobre la relación entre un recurso de origen y un recurso de destino.

Las declaraciones siempre las realiza el recurso de origen, ya sea de forma directa o delegándolas a una lista de declaraciones almacenada en otro lugar.

Para obtener definiciones más detalladas de los resúmenes y los recursos, consulta nuestra página de destino de la documentación de la API.

Nombre del campo Tipo Descripción
source Asset Cada sentencia tiene un recurso de origen. REQUIRED
relation string

La relación identifica el uso de la declaración según lo previsto por el propietario del activo de origen (es decir, la persona o entidad que la emitió). Cada instrucción completa tiene una relación.

Identificamos relaciones con cadenas del formato <kind>/<detail>, en las que <kind> debe ser una de un conjunto de categorías de propósito predefinidas, y <detail> es una cadena alfanumérica en minúscula de formato libre que describe el caso de uso específico de la instrucción.

Consulta nuestra documentación de la API para ver la lista actual de relaciones admitidas.

Ejemplo: delegate_permission/common.handle_all_urls (OBLIGATORIO)

target Asset Cada sentencia tiene un recurso objetivo. REQUIRED

WebAsset

Describe un elemento web.

Nombre del campo Tipo Descripción
site string

Los recursos web se identifican mediante una URL que contiene solo el esquema, el nombre de host y las partes del puerto. El formato es

http[s]://<hostname>[:<port>]

Los nombres de host deben estar completamente calificados: deben terminar en un solo punto (“.”).

Actualmente, solo se permiten los esquemas “http” y “https”.

Los números de puerto se proporcionan como números decimales y deben omitirse si se usan los números de puerto estándar: 80 para http y 443 para https.

A esta URL limitada la llamamos el "sitio". Todas las URLs que comparten el mismo esquema, nombre de host y puerto se consideran parte del sitio y, por lo tanto, pertenecen al activo web.

Ejemplo: El recurso con el sitio https://www.google.com contiene todas estas URLs:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

Sin embargo, no contiene las siguientes URL:

  • http://www.google.com/ (esquema incorrecto)
  • https://google.com/ (el nombre de host no coincide)
  • https://www.google.com:444/ (el puerto no coincide) OBLIGATORIO