Package google.digitalassetlinks.v1

Index

Kontoauszüge

Dieser API-Dienst stellt „Anweisungen“ bereit. Das sind die Fahrzeuge, die von Asset-Inhabern verwendet werden, um Informationen zu ihren Asset-Links zu veröffentlichen. Mit der API können Anweisungen einfach und sicher abgerufen werden, ohne dass sie direkt aus den Quellen abgerufen werden müssen.

Alle von dieser API zurückgegebenen Aussagen wurden im Namen von digitalen Assets (z. B. Websites oder Android-Apps) zu anderen digitalen Assets vorgenommen. Jede Anweisung enthält ein Quell-Asset, ein Ziel-Asset und mindestens eine Beziehung.

Die Beziehung beschreibt die Beziehung zwischen den beiden Assets, auf die das Quell-Asset Anspruch erhoben hat. Ein Beispiel für eine solche Beziehung ist die Bevollmächtigung von Berechtigungen oder Berechtigungen.

Liste

rpc List(ListRequest) returns (ListResponse)

Ruft eine Liste aller Anweisungen aus einer bestimmten Quelle ab, die dem angegebenen Ziel- und Anweisungsstring entsprechen.

Die API garantiert, dass alle Anweisungen mit sicheren Quell-Assets, wie z. B. HTTPS-Websites oder Android-Apps, sicher vom Inhaber der jeweiligen Inhalte stammen. Weitere Informationen dazu finden Sie in der technischen Spezifikation „Digital Asset Links“. Insbesondere bei unsicheren Websites, bei denen die URL mit http:// statt https:// beginnt, ist diese Garantie nicht möglich.

Der Befehl List ist besonders dann nützlich, wenn der API-Client wissen möchte, wie zwei Assets miteinander in Beziehung stehen oder alle Beziehungen eines bestimmten Quell-Assets aufzählen. Beispiel: Eine Funktion, mit der Nutzer ähnliche Artikel finden können. Wenn eine mobile App auf einem Gerät ausgeführt wird, können Sie damit die entsprechende Website oder das Google+ Profil ganz einfach aufrufen.

Android-App-Asset

Beschreibt ein Android-App-Asset.

Feldname Typ Beschreibung
package_name string Android-App-Assets werden anhand ihres Java-Paketnamens identifiziert. Die Google Maps App verwendet beispielsweise den Paketnamen com.google.android.apps.maps. ERFORDERLICH
certificate CertificateInfo

Weil die Eindeutigkeit des Paketnamens nicht global erzwungen wird, ist außerdem ein Signaturzertifikat erforderlich, mit dem eine App in Kombination mit dem Paketnamen eindeutig identifiziert wird.

Die Signaturschlüssel einiger Apps sind rotiert, sodass sie im Laufe der Zeit möglicherweise von unterschiedlichen Schlüsseln signiert werden. Diese werden als separate Assets behandelt, da wir (Paketname, Zertifikat) als eindeutige ID verwenden. Dies sollte normalerweise keine Probleme verursachen, da beide Versionen der App dieselben oder ähnliche Anweisungen geben. Andere Assets, die Aussagen über die App machen, müssen jedoch aktualisiert werden, wenn ein Schlüssel rotiert wird.

Beachten Sie, dass die Syntaxen für die Veröffentlichung und die Abfrage von Anweisungen syntaktischen Zucker enthalten, damit Sie Anwendungen, die von mehreren Zertifikaten bekannt sind, einfach angeben können. ERFORDERLICH

Zertifikatinformationen

Beschreibt ein X509-Zertifikat.

Feldname Typ Beschreibung
sha256_fingerprint string

Der SHA-265-Fingerabdruck des Zertifikats in Großbuchstaben. Aus dem PEM-Zertifikat kann es so erworben werden:

$ 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

oder so:

$ 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

In diesem Beispiel würde der Inhalt dieses Felds 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 lauten.

Wenn Ihnen diese Tools nicht zur Verfügung stehen, können Sie das PEM-Zertifikat in das DER-Format konvertieren, den SHA-256-Hash-Wert dieses Strings berechnen und das Ergebnis als Hexadezimalstring darstellen, d. h., hexadezimale Großbuchstaben jedes Oktetts, getrennt durch Doppelpunkte.

Asset

Kennzeichnet eindeutig ein Asset.

Ein digitales Asset ist ein identifizierbares und adressierbares Onlineunternehmen, das in der Regel Dienstleistungen oder Inhalte anbietet. Beispiele für Assets sind Websites, Android-Apps, Twitter-Feeds und Google+ Seiten.

Feldname Typ Beschreibung
Union-Feld, nur eines der folgenden:
web WebAsset Legen Sie fest, ob es sich um ein Web-Asset handelt.
android_app AndroidAppAsset Legen Sie fest, ob es sich um ein Android-App-Asset handelt.

CheckRequest

Nachricht, die verwendet wird, um zu prüfen, ob eine bestimmte Asset-Verknüpfung vorhanden ist.

Feldname Typ Beschreibung
source Asset Die Quelle, die die Anweisungsliste hostet. Dadurch wird der Check()-Aufruf an die richtige Quelle weitergeleitet.
relation string

Abfragestring für die Beziehung.

Wir ermitteln Beziehungen mit Strings im Format <kind>/<detail>, wobei <kind> einer der vordefinierten Zweckkategorien sein muss und <detail> ein frei definierbarer kleingeschriebener alphanumerischer String ist, der den spezifischen Anwendungsfall der Anweisung beschreibt.

Eine aktuelle Liste der unterstützten Beziehungen finden Sie in unserer API-Dokumentation.

Damit eine Abfrage mit einem Asset-Link übereinstimmen kann, müssen sowohl die Beziehungsstrings der Abfrage als auch die des Asset-Links genau übereinstimmen.

Beispiel: Eine Abfrage mit der Beziehung delegate_permission/common.handle_all_urls stimmt mit einer Asset-Verknüpfung mit der Beziehung delegate_permission/common.handle_all_urls überein.

target Asset Das Ziel-Asset der Anweisung.

CheckResponse

Antwortnachricht für den CheckAssetLinks-Aufruf.

Feldname Typ Beschreibung
linked bool Wird auf „true“ gesetzt, wenn die in der Anfrage angegebenen Assets mit der in der Anfrage angegebenen Beziehung verknüpft sind. ERFORDERLICH
max_age Duration Ab dem Zeitpunkt der Bereitstellung, wie lange die Antwort als gültige Aktualisierungen zu betrachten ist, abgesehen von weiteren Aktualisierungen. ERFORDERLICH
debug_string string

Für Menschen lesbare Nachricht mit Informationen, die Endnutzern helfen sollen, das Ergebnis zu verstehen, zu reproduzieren und Fehler zu beheben.

Die Nachricht wird in englischer Sprache verfasst. Derzeit sind aber keine Übersetzungen verfügbar.

Beachten Sie, dass der Inhalt oder das Format dieses Strings nicht garantiert werden kann. Jeder Aspekt kann sich ohne vorherige Ankündigung ändern. Sie sollten nicht versuchen, diese Daten programmatisch zu parsen. Wenn Sie der Meinung sind, dass dies erforderlich ist, weil die benötigten Informationen ansonsten nicht über die API bereitgestellt werden, wenden Sie sich bitte zuerst an uns.

Listenanfrage

Nachricht, die zum Anfordern aller bekannten Anweisungen mit einer angegebenen Quelle und Beziehung verwendet wird.

Feldname Typ Beschreibung
source Asset Die Quelle, die die Anweisungsliste hostet. Dadurch wird die List()-Anfrage an die richtige Quelle weitergeleitet. ERFORDERLICH
relation string

Verwenden Sie nur Verknüpfungen, die der angegebenen Beziehung entsprechen.

Eine detaillierte Definition von Beziehungsstrings finden Sie in der Nachricht Statement.

Eine Abfrage, die einer Anweisung entspricht, muss einer der folgenden Punkte entsprechen:

  • die Beziehungsstrings der Abfrage und der Anweisung stimmen genau überein oder
  • Der Beziehungsstring der Abfrage ist leer oder fehlt.

Beispiel: Eine Abfrage mit der Beziehung delegate_permission/common.handle_all_urls stimmt mit einer Asset-Verknüpfung mit der Beziehung delegate_permission/common.handle_all_urls überein.

ListResponse

Antwortnachricht für den List-Aufruf.

Feldname Typ Beschreibung
statements Statement Eine Liste aller gefundenen übereinstimmenden Anweisungen.
max_age Duration Ab dem Zeitpunkt der Bereitstellung, wie lange die Antwort als gültige Aktualisierungen zu betrachten ist, abgesehen von weiteren Aktualisierungen. ERFORDERLICH
debug_string string

Für Menschen lesbare Nachricht mit Informationen, die Endnutzern helfen sollen, das Ergebnis zu verstehen, zu reproduzieren und Fehler zu beheben.

Die Nachricht wird in englischer Sprache verfasst. Derzeit sind aber keine Übersetzungen verfügbar.

Beachten Sie, dass der Inhalt oder das Format dieses Strings nicht garantiert werden kann. Jeder Aspekt kann sich ohne vorherige Ankündigung ändern. Sie sollten nicht versuchen, diese Daten programmatisch zu parsen. Wenn Sie der Meinung sind, dass dies erforderlich ist, weil die benötigten Informationen ansonsten nicht über die API bereitgestellt werden, wenden Sie sich bitte zuerst an uns.

Aussage

Beschreibt eine verlässliche Aussage zur Beziehung zwischen einem Quell-Asset und einem Ziel-Asset.

Anweisungen werden immer vom Quell-Asset erstellt, entweder direkt oder durch Delegieren an eine an anderer Stelle gespeicherte Anweisungsliste.

Detaillierte Definitionen für Anweisungen und Assets finden Sie auf unserer Landingpage für die API-Dokumentation.

Feldname Typ Beschreibung
source Asset Jede Anweisung hat ein Quell-Asset. ERFORDERLICH
relation string

Die Beziehung gibt an, wie die Anweisung vom Inhaber des Quell-Assets, d. h. von der Person oder Rechtspersönlichkeit, die die Abrechnung erstellt hat, verwendet wird. Jede vollständige Aussage hat eine Beziehung.

Wir ermitteln Beziehungen mit Strings im Format <kind>/<detail>, wobei <kind> einer der vordefinierten Zweckkategorien sein muss und <detail> ein frei definierbarer kleingeschriebener alphanumerischer String ist, der den spezifischen Anwendungsfall der Anweisung beschreibt.

Eine aktuelle Liste der unterstützten Beziehungen finden Sie in unserer API-Dokumentation.

Beispiel: delegate_permission/common.handle_all_urls ERFORDERLICH

target Asset Jede Anweisung hat ein Ziel-Asset. ERFORDERLICH

Web-Asset

Beschreibt ein Web-Asset.

Feldname Typ Beschreibung
site string

Web-Assets werden über eine URL identifiziert, die nur das Schema, den Hostnamen und die Portteile enthält. Das Format ist

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

Hostnamen müssen vollständig qualifiziert sein: Sie müssen in einem einzigen Punkt enden („.“).

Derzeit sind nur die Schemas „http“ und „https“ zulässig.

Portnummern werden als Dezimalzahl angegeben und müssen ausgelassen werden, wenn die standardmäßigen Portnummern verwendet werden: 80 für http und 443 für https.

Diese eingeschränkte URL wird als „Website“ bezeichnet. Alle URLs mit demselben Schema, Hostnamen und Port werden als Teil der Website betrachtet und gehören daher zum Web-Asset.

Beispiel: Das Asset mit der Website https://www.google.com enthält alle folgenden 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/

Die folgenden URLs sind jedoch nicht enthalten:

  • http://www.google.com/ (falsches Schema)
  • https://google.com/ (Hostname stimmt nicht überein)
  • https://www.google.com:444/ (Port stimmt nicht überein) REQUIRED