Package google.digitalassetlinks.v1

Индекс

Заявления

Этот сервис API обслуживает «заявления», которые представляют собой средства, используемые владельцами активов для публикации информации о своих связях с активами. API можно использовать для получения операторов простым и безопасным способом без необходимости получать операторы непосредственно из источников.

Все заявления, возвращаемые этим API, были сделаны от имени цифровых активов (например, веб-сайтов или приложений Android) в отношении других цифровых активов. Каждый оператор содержит исходный актив, целевой актив и одно или несколько отношений.

Отношение описывает взаимосвязь между двумя активами, заявленную исходным активом. Примером таких отношений является делегирование привилегий или разрешений.

Список

rpc List( ListRequest ) returns ( ListResponse )

Извлекает список всех операторов из заданного источника, которые соответствуют указанной цели и строке оператора.

API гарантирует, что все заявления с активами с защищенным источником, такими как веб-сайты HTTPS или приложения Android, были сделаны безопасным способом владельцем этих активов, как описано в технической спецификации проекта Digital Asset Links . В частности, вам следует учитывать, что для небезопасных веб-сайтов (то есть, где URL-адрес начинается с http:// вместо https:// ) такая гарантия не может быть предоставлена.

Команда List наиболее полезна в тех случаях, когда клиент API хочет знать все способы связи двух ресурсов или перечислить все связи из определенного исходного актива. Пример: функция, которая помогает пользователям переходить к связанным элементам. Когда мобильное приложение запущено на устройстве, эта функция позволит легко перейти на соответствующий веб-сайт или профиль Google+.

AndroidAppAsset

Описывает актив приложения Android.

Имя поля Тип Описание
package_name string Ресурсы приложений Android естественным образом идентифицируются по имени их пакета Java. Например, приложение Google Maps использует имя пакета com.google.android.apps.maps . НЕОБХОДИМЫЙ
certificate CertificateInfo

Поскольку не существует глобального обеспечения уникальности имени пакета, нам также требуется сертификат подписи, который в сочетании с именем пакета однозначно идентифицирует приложение.

Ключи подписи некоторых приложений меняются, поэтому со временем они могут быть подписаны разными ключами. Мы рассматриваем их как отдельные активы, поскольку используем (имя пакета, сертификат) в качестве уникального идентификатора. Обычно это не должно создавать никаких проблем, поскольку обе версии приложения будут делать одинаковые или похожие утверждения. Однако другие ресурсы, делающие заявления о приложении, должны будут обновляться при смене ключа.

(Обратите внимание, что синтаксисы публикации и запроса операторов содержат синтаксический сахар, позволяющий легко указывать приложения, известные по нескольким сертификатам.) ОБЯЗАТЕЛЬНО.

Информация о сертификате

Описывает сертификат X509.

Имя поля Тип Описание
sha256_fingerprint string

Отпечаток сертификата SHA-265 в верхнем регистре. Из сертификата PEM его можно получить следующим образом:

$ 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

или вот так:

$ 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

В этом примере содержимое этого поля будет 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 .

Если эти инструменты вам недоступны, вы можете преобразовать сертификат PEM в формат DER, вычислить хэш SHA-256 этой строки и представить результат в виде шестнадцатеричной строки (то есть шестнадцатеричные представления каждого октета в верхнем регистре, разделенные двоеточиями). ).

Объект

Уникально идентифицирует актив.

Цифровой актив — это идентифицируемый и адресуемый онлайн-объект, который обычно предоставляет некоторую услугу или контент. Примерами ресурсов являются веб-сайты, приложения для Android, каналы Twitter и страницы Plus.

Имя поля Тип Описание
Поле объединения, только одно из следующих:
web WebAsset Установите, является ли это веб-ресурсом.
android_app AndroidAppAsset Установите, если это ресурс приложения Android.

Чекреквест

Сообщение, используемое для проверки существования конкретной ссылки на актив.

Имя поля Тип Описание
source Asset Источник, содержащий список утверждений. Это используется для маршрутизации вызова Check() к правильному источнику.
relation string

Строка запроса для отношения.

Мы идентифицируем отношения со строками формата <kind>/<detail> , где <kind> должен быть одной из набора заранее определенных категорий назначения, а <detail> — это буквенно-цифровая строка свободной формы в нижнем регистре, описывающая конкретное использование. случай высказывания.

Текущий список поддерживаемых отношений можно найти в нашей документации по API .

Чтобы запрос соответствовал ссылке на актив, строки отношений запроса и ссылки на актив должны точно совпадать.

Пример. Запрос с отношением delegate_permission/common.handle_all_urls соответствует ссылке на актив с отношением delegate_permission/common.handle_all_urls .

target Asset Целевой актив отчета.

Проверить ответ

Ответное сообщение на вызов CheckAssetLinks.

Имя поля Тип Описание
linked bool Установите значение true, если активы, указанные в запросе, связаны отношением, указанным в запросе. НЕОБХОДИМЫЙ
max_age Duration В зависимости от времени обслуживания, в течение какого времени ответ следует считать действительным, за исключением дальнейших обновлений. НЕОБХОДИМЫЙ
debug_string string

Читабельное сообщение, содержащее информацию, призванную помочь конечным пользователям понять, воспроизвести и отладить результат.

Сообщение будет на английском языке, и в настоящее время мы не планируем переводить его.

Обратите внимание, что никаких гарантий относительно содержимого или формата этой строки не предоставляется. Любой аспект может быть изменен без предварительного уведомления. Не следует пытаться программно анализировать эти данные. Если вы считаете, что вам необходимо это сделать, поскольку необходимая вам информация иначе не предоставляется через API, сначала свяжитесь с нами.

Список запросов

Сообщение, используемое для запроса всех известных операторов, имеющих указанный источник и отношение.

Имя поля Тип Описание
source Asset Источник, содержащий список утверждений. Это используется для направления запроса List() к нужному источнику. НЕОБХОДИМЫЙ
relation string

Используйте только ассоциации, соответствующие указанному отношению.

См. сообщение Statement для подробного определения строк отношения.

Чтобы запрос соответствовал оператору, должно выполняться одно из следующих условий:

  • строки отношений запроса и оператора точно совпадают, или
  • строка связи запроса пуста или отсутствует.

Пример. Запрос с отношением delegate_permission/common.handle_all_urls соответствует ссылке на актив с отношением delegate_permission/common.handle_all_urls .

СписокОтвет

Ответное сообщение для вызова List.

Имя поля Тип Описание
statements Statement Список всех найденных совпадающих утверждений.
max_age Duration В зависимости от времени обслуживания, в течение какого времени ответ следует считать действительным, за исключением дальнейших обновлений. НЕОБХОДИМЫЙ
debug_string string

Читабельное сообщение, содержащее информацию, призванную помочь конечным пользователям понять, воспроизвести и отладить результат.

Сообщение будет на английском языке, и в настоящее время мы не планируем переводить его.

Обратите внимание, что никаких гарантий относительно содержимого или формата этой строки не предоставляется. Любой аспект может быть изменен без предварительного уведомления. Не следует пытаться программно анализировать эти данные. Если вы считаете, что вам необходимо это сделать, поскольку необходимая вам информация иначе не предоставляется через API, сначала свяжитесь с нами.

Заявление

Описывает достоверное заявление о связи между исходным и целевым активом.

Заявления всегда делаются исходным активом либо напрямую, либо путем делегирования в список операторов, который хранится в другом месте.

Более подробные определения операторов и активов можно найти на нашей целевой странице документации API .

Имя поля Тип Описание
source Asset У каждого оператора есть исходный актив. НЕОБХОДИМЫЙ
relation string

Отношение идентифицирует использование заявления по назначению владельцем исходного актива (то есть физическим или юридическим лицом, выпустившим заявление). Каждое полное утверждение имеет отношение.

Мы идентифицируем отношения со строками формата <kind>/<detail> , где <kind> должен быть одной из набора заранее определенных категорий назначения, а <detail> — это буквенно-цифровая строка свободной формы в нижнем регистре, описывающая конкретное использование. случай высказывания.

Текущий список поддерживаемых отношений можно найти в нашей документации по API .

Пример: delegate_permission/common.handle_all_urls ОБЯЗАТЕЛЬНО

target Asset У каждого утверждения есть целевой актив. НЕОБХОДИМЫЙ

ВебАссет

Описывает веб-ресурс.

Имя поля Тип Описание
site string

Веб-ресурсы идентифицируются по URL-адресу, который содержит только схему, имя хоста и часть порта. Формат:

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

Имена хостов должны быть полными: они должны заканчиваться одной точкой (" . ").

В настоящее время разрешены только схемы «http» и «https».

Номера портов задаются в виде десятичного числа, и их необходимо опускать, если используются стандартные номера портов: 80 для http и 443 для https.

Мы называем этот ограниченный URL-адрес «сайтом». Все URL-адреса, имеющие одну и ту же схему, имя хоста и порт, считаются частью сайта и, следовательно, принадлежат веб-ресурсу.

Пример: ресурс с сайтом https://www.google.com содержит все эти URL:

  • 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/

Но он не содержит этих URL-адресов:

  • http://www.google.com/ (неправильная схема)
  • https://google.com/ (имя хоста не совпадает)
  • https://www.google.com:444/ (порт не соответствует) ОБЯЗАТЕЛЬНО