Package google.digitalassetlinks.v1

Индекс

Заявления

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

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

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

Список

rpc List( ListRequest ) returns ( ListResponse )

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

API гарантирует, что все заявления с безопасными исходными ресурсами, такими как веб-сайты HTTPS или приложения Android, были сделаны безопасным способом владельцем этих ресурсов, как описано в технической спецификации дизайна цифровых активов . В частности, вы должны учитывать, что для небезопасных веб-сайтов (то есть 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 Pages.

Имя поля Тип Описание
Поле Union, только одно из следующего:
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 .

Списокответ

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

Имя поля Тип Описание
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/ (порт не совпадает) ОБЯЗАТЕЛЬНО