Package google.digitalassetlinks.v1

Index

Erklärungen

Dieser API-Dienst liefert Anweisungen, d. h. die Fahrzeuge, mit denen Asset-Inhaber Informationen zu ihren Asset-Links veröffentlichen. Mit der API können Anweisungen einfach und sicher abgerufen werden, ohne dass die Anweisungen direkt aus den Quellen abgerufen werden müssen.

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

Die Beziehung beschreibt die Beziehung zwischen den beiden Inhalten, wie sie vom Quell-Asset beansprucht wurde. Ein Beispiel für solche Beziehungen ist das Delegieren von Berechtigungen.

Liste

rpc List(ListRequest) returns (ListResponse)

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

Die API garantiert, dass alle Aussagen mit sicheren Quell-Assets, z. B. HTTPS-Websites oder Android-Apps, vom Inhaber dieser Assets auf sichere Weise abgegeben wurden, wie in der technischen Designspezifikation zu Digital Asset Links beschrieben. Insbesondere ist zu beachten, dass diese Garantie für unsichere Websites nicht gegeben werden kann, wenn die URL mit http:// und nicht mit https:// beginnt.

Der Befehl List ist am nützlichsten, wenn der API-Client wissen möchte, wie zwei Assets zusammenhängen, oder alle Beziehungen aus einem bestimmten Quell-Asset aufzählen möchte. Beispiel: eine Funktion, mit der Nutzende zu ähnlichen Elementen navigieren können. Wenn eine mobile App auf einem Gerät ausgeführt wird, erleichtert die Funktion die Navigation zur entsprechenden Website bzw. zum entsprechenden Google+ Profil.

AndroidAppAsset

Beschreibt ein Android-App-Asset.

Feldname Typ Beschreibung
package_name string Android-App-Assets sind an ihrem Java-Paketnamen erkennbar. Die Google Maps App verwendet beispielsweise den Paketnamen com.google.android.apps.maps. ERFORDERLICH
certificate CertificateInfo

Da die Eindeutigkeit von Paketnamen weltweit nicht erzwungen wird, benötigen wir außerdem ein Signaturzertifikat, das in Verbindung mit dem Paketnamen eine App eindeutig identifiziert.

Die Signaturschlüssel einiger Apps werden rotiert, sodass sie im Laufe der Zeit möglicherweise mit anderen Schlüsseln signiert werden. Wir behandeln sie als separate Assets, da wir (Paketname, Zertifikat) als eindeutige ID verwenden. Dies sollte normalerweise keine Probleme verursachen, da beide Versionen der App die gleichen oder ähnliche Aussagen machen. Andere Assets mit Aussagen zur App müssen jedoch aktualisiert werden, wenn ein Schlüssel rotiert wird.

Beachten Sie, dass die Syntax für das Veröffentlichen und Abfragen von Anweisungen syntaktischen Zucker enthält, damit Sie auf einfache Weise Anwendungen angeben können, die durch mehrere Zertifikate bekannt sind. ERFORDERLICH

CertificateInfo

Beschreibt ein X509-Zertifikat.

Feldname Typ Beschreibung
sha256_fingerprint string

Der SHA-265-Fingerabdruck des Zertifikats in Großbuchstaben. So erhalten Sie das PEM-Zertifikat:

$ 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 lautet 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.

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

Asset

Kennzeichnet einen Inhalt eindeutig.

Ein digitaler Vermögenswert ist ein identifizierbares und adressierbares Online-Unternehmen, das in der Regel einen bestimmten Dienst oder Inhalt anbietet. Beispiele für Assets sind Websites, Android-Apps, Twitter-Feeds und Google+ Seiten.

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

CheckRequest

Nachricht, mit der geprüft wird, ob ein bestimmter Asset-Link vorhanden ist.

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

Abfragestring für die Beziehung.

Wir identifizieren Beziehungen mit Strings im Format <kind>/<detail>, wobei <kind> eine aus einer Reihe vordefinierter Zweckkategorien sein muss und <detail> ein kleingeschriebener alphanumerischer String im freien Format 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 übereinstimmt, müssen die Beziehungsstrings der Abfrage und des Asset-Links genau übereinstimmen.

Beispiel: Eine Abfrage mit der Beziehung delegate_permission/common.handle_all_urls stimmt mit einem Asset-Link mit der Beziehung delegate_permission/common.handle_all_urls überein.

target Asset Das Ziel-Asset des Kontoauszugs.

CheckResponse

Antwortnachricht für den CheckAssetLinks-Aufruf.

Feldname Typ Beschreibung
linked bool Wird auf „true“ gesetzt, wenn die in der Anfrage angegebenen Assets über die in der Anfrage angegebene Beziehung verknüpft sind. ERFORDERLICH
max_age Duration Ab dem Zeitpunkt der Auslieferung, wie lange die Antwort gültig sein soll, solange keine weiteren Aktualisierungen erfolgen. ERFORDERLICH
debug_string string

Eine visuell lesbare Nachricht mit Informationen, die Endnutzern helfen sollen, das Ergebnis zu verstehen, zu reproduzieren und zu debuggen.

Die Mitteilung wird auf Englisch verfasst und derzeit ist nicht geplant, sie zu übersetzen.

Beachten Sie, dass hinsichtlich des Inhalts oder Formats dieses Strings keine Garantien gegeben werden. Alle Teile davon können ohne vorherige Ankündigung geändert werden. Sie sollten nicht versuchen, diese Daten programmatisch zu parsen. Wenn Sie dies Ihrer Meinung nach tun müssen, weil die von Ihnen benötigten Informationen über die API nicht anderweitig offengelegt werden, setzen Sie sich bitte zuerst mit uns in Verbindung.

ListRequest

Nachricht zum Anfordern aller bekannten Anweisungen, die eine angegebene Quelle und Beziehung haben.

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

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

Eine ausführliche Definition von Beziehungsstrings finden Sie in der Nachricht Statement.

Damit eine Abfrage mit einer Anweisung übereinstimmt, muss eine der folgenden Bedingungen zutreffen:

  • dass die Beziehungsstrings der Abfrage und die Anweisung genau übereinstimmen, oder
  • der Beziehungsstring der Abfrage ist leer oder fehlt.

Beispiel: Eine Abfrage mit der Beziehung delegate_permission/common.handle_all_urls stimmt mit einem Asset-Link mit der Beziehung delegate_permission/common.handle_all_urls überein.

ListResponse

Antwortnachricht für den Listenaufruf.

Feldname Typ Beschreibung
statements Statement Eine Liste aller gefundenen übereinstimmenden Anweisungen.
max_age Duration Ab dem Zeitpunkt der Auslieferung, wie lange die Antwort gültig sein soll, solange keine weiteren Aktualisierungen erfolgen. ERFORDERLICH
debug_string string

Eine visuell lesbare Nachricht mit Informationen, die Endnutzern helfen sollen, das Ergebnis zu verstehen, zu reproduzieren und zu debuggen.

Die Mitteilung wird auf Englisch verfasst und derzeit ist nicht geplant, sie zu übersetzen.

Beachten Sie, dass hinsichtlich des Inhalts oder Formats dieses Strings keine Garantien gegeben werden. Alle Teile davon können ohne vorherige Ankündigung geändert werden. Sie sollten nicht versuchen, diese Daten programmatisch zu parsen. Wenn Sie dies Ihrer Meinung nach tun müssen, weil die von Ihnen benötigten Informationen über die API nicht anderweitig offengelegt werden, setzen Sie sich bitte zuerst mit uns in Verbindung.

Aussage

Beschreibt eine zuverlässige Aussage über die Beziehung zwischen einem Quell-Asset und einem Ziel-Asset.

Anweisungen werden immer vom Quell-Asset erstellt, entweder direkt oder durch Delegieren an eine Anweisungsliste, die an einem anderen Ort gespeichert ist.

Detailliertere Definitionen von Anweisungen und Assets finden Sie auf unserer Landingpage der API-Dokumentation.

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

Die Beziehung gibt die Verwendung der Anweisung an, wie vom Rechteinhaber des Quell-Assets (d. h. der Person oder Rechtspersönlichkeit, die die Anweisung ausgestellt hat) beabsichtigt. Jede vollständige Anweisung verfügt über eine Beziehung.

Wir identifizieren Beziehungen mit Strings im Format <kind>/<detail>, wobei <kind> eine aus einer Reihe vordefinierter Zweckkategorien sein muss und <detail> ein kleingeschriebener alphanumerischer String im freien Format 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 REQUIRED

target Asset Jede Anweisung hat ein Ziel-Asset. ERFORDERLICH

WebAsset

Beschreibt ein Web-Asset.

Feldname Typ Beschreibung
site string

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

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

Hostnamen müssen voll qualifiziert sein: Sie müssen auf einen einzelnen Punkt („.“) enden.

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

Portnummern werden als Dezimalzahl angegeben und müssen weggelassen werden, wenn die standardmäßigen Portnummern verwendet werden: 80 für HTTP und 443 für HTTPS.

Diese eingeschränkte URL bezeichnen wir als „Website“. Alle URLs, die das gleiche Schema, den gleichen Hostnamen und den gleichen Port haben, werden als Teil der Website angesehen und gehören daher zum Web-Asset.

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

Folgende 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) ERFORDERLICH