In diesem Abschnitt wird der Support-Workflow beschrieben, wenn Sie Support als Teil Ihres Produkts bereitstellen möchten.
Ihr System muss in das von Google eingebunden sein, damit Sie Ihren Kunden, die Ihre Produkte über Google gekauft haben, Support bieten können. Für diese Einbindung stellt Google Ihnen Folgendes bereit:
Einen Schlüssel, mit dem Sie den Anspruch eines Nutzers auf Support im Rahmen des Registrierungsprozesses prüfen können.
Die Subscriptions API, an die Sie den Schlüssel in regelmäßigen Abständen senden, um den Status des Supportanspruchs des Nutzers abzufragen.
Support-ID des Nutzers abrufen
Zentrales Element der Supportintegration ist die externe Konto-ID, die Ihre Nutzer als ihre Support-ID betrachten.
Um die Support-ID Ihrer Nutzer abzurufen, erstellen Sie einen Support-Workflow und geben eine URL zu dessen Start an. Danach sendet Google Ihnen die externe Konto-ID in der URL.
Wenn du den Support-Workflow implementierst, muss die externe Konto-ID als Teil der URL akzeptiert werden. Die externe Konto-ID kann wie oben beschrieben Teil des URL-Pfads oder als Wert eines Suchparameters sein:
# External account ID in path http://example.com/mysupportpage/{external_account_id}?someparameter=yes # External account ID as a query parameter http://example.com/mysupportpage?eid={external_account_id}&something_else
Der Text {external_account_id}
in der URL wird durch die externe Konto-ID ersetzt. Wenn in Google Cloud Marketplace mehrere Produkte aufgeführt sind, möchten Sie möglicherweise einen Abfrageparameter einfügen, um das Produkt zu identifizieren, für das die URL bestimmt ist.
Subscriptions API verwenden
Nachdem Sie die externe Konto-ID des Nutzers haben, können Sie die von Google bereitgestellte Abo-API verwenden, um jederzeit die Support-Berechtigung für sein Konto zu prüfen. Die Berechtigung wird nachverfolgt, indem nach Entitäten gesucht wird, die als Abos bezeichnet werden.
Jedes Abo hat eine eindeutige Abo-ID. Für jedes Produkt, die Sie in Cloud Marketplace auflisten, wird pro Kunde ein eindeutiges Abo erstellt. Sie können auch ein Abo nach Abo-ID abfragen, um weitere Details zum Verlauf eines Kunden mit Ihrem Produkt zu erhalten, z. B. Startdatum, Enddatum usw.
Auf Subscriptions API zugreifen
Die Subscriptions API ist eine nicht öffentliche API, sodass Entwickler und Projekte, die Zugriff darauf benötigen, auf die Zulassungsliste gesetzt werden müssen.
Um auf die Zulassungsliste gesetzt zu werden und die API einzurichten, gehen Sie so vor:
Senden Sie eine Liste mit E-Mail-Adressen für Entwickler, die auf die API-Dokumentation zugreifen müssen, an Ihren Google Cloud Marketplace-Partnerentwickler oder an cloud-partner-onboarding@google.com. Dies müssen die genauen E-Mail-Adressen sein, unter denen sich die Entwickler anmelden http://console.developers.google.com. Diese Entwickler werden der Gruppe hinzugefügt, die die Berechtigung zum Zugriff auf die Dokumentation der Abo-API erteilt.
Senden Sie die Projekt-ID Ihres Produkts an Ihren Google Cloud Marketplace-Partnerentwickler und fordern Sie an, dass ihm die Berechtigung zum Aufrufen der API erteilt wird. Bei Bedarf können mehrere Projekte auf die Zulassungsliste gesetzt werden.
Aktivieren Sie die Cloud Billing-API, indem Sie das Menü oben links unter https://console.developers.google.com erweitern, auf APIs und Services klicken und dann nach suchen und Aktivieren der Cloud Billing API.
Erstellen Sie ein OAuth2-Dienstkonto, das Ihrem Projekt zugeordnet ist, und senden Sie die E-Mail-Adresse für dieses Konto an Ihren Google Cloud Marketplace-Partnerentwickler. Dieser Nutzer wird auf die Zulassungsliste gesetzt, um für Sie alle Abos zu lesen. Er wird auch dafür verwendet, alle Anfragen zu autorisieren, mit Ausnahme derjenigen, für die die Erlaubnis des Kunden mit einem OAuth-Dialogfeld angefordert werden muss.
Da die Subscriptions API keine öffentliche API ist, ist sie standardmäßig nicht in der Python-Clientbibliothek enthalten. Wenn Sie die Python-Clientbibliothek mit dieser API verwenden möchten, müssen Sie sich auch an Ihren Google-Partnerentwickler wenden, um Hilfe beim Zugriff auf die Erkennungsdatei zu erhalten.
In der nachfolgenden Beispielinitialisierung wird der Name der Discovery-Datei auf den Pfad gesetzt, auf den die Discovery-Datei heruntergeladen wurde.
# Load the local copy of the discovery document f = file(os.path.join(os.path.dirname(__file__), "cloudbilling-subscriptions_discovery.json"), "r") discovery = f.read() f.close() # Construct a service from the local documents service = build_from_document(discovery, base="https://www.googleapis.com/", http=http)
Die Clientbibliothek unterstützt auch die OAuth-Authentifizierung sowohl für Kundenanmeldedaten als auch für OAuth2-Dienstkonten. Weitere Informationen finden Sie in der OAuth 2.0-Dokumentation in der Google API-Clientbibliothek für Python.
Subscriptions API abfragen
Um die Erlaubnis zu erhalten, auf Abodaten zuzugreifen, müssen Sie ein OAuth2-Dienstkonto erstellen und uns mitteilen, welches Konto Sie für die Autorisierung von API-Anfragen verwenden möchten. Google wird dann dem Dienstkonto den Zugriff gewähren, Ihre Abos für alle Kunden zu lesen. Weitere Informationen finden Sie unter OAuth 2.0 für Server-zu-Server-Anwendungen verwenden.
Die API ist eine schreibgeschützte RESTful-API, die Aboressourcen zurückgibt, mit denen die folgenden Informationen abgerufen werden können:
- name – Eine Kennzeichnung für eine einzelne Aboressource.
- externalAccountId – Eine Kennzeichnung für ein einzelnes Abrechnungskonto.
- version – Eine Versionsnummer, die jedes Mal aktualisiert wird, wenn der Datensatz geändert wird. Dies kann verwendet werden, um Änderungen seit dem letzten Lesen leicht zu erkennen.
- status – Einer der folgenden Werte:
- ACTIVE – Das Abo ist derzeit aktiv und der Kunde sollte Unterstützung von Ihnen erhalten können. Ein Abo gilt als aktiv, wenn das Konto in den letzten 30 Tagen eine aktive VM hatte.
- COMPLETE (Abgeschlossen) – Das Abo ist nicht mehr aktiv, da der Kunde keine aktiven VMs mehr hat, die mit Ihrem Produkt ausgeführt werden, und er auch die letzten 30 Tage nicht genutzt hat.
- subscribedResources – Eine Liste der von diesem Abo abgedeckten Ressourcen.
- startDate: Datum, an dem das Abo begann, formatiert als String im RFC 3339-Format.
- endDate: Das Datum, an dem das Abo beendet wurde (falls es beendet wurde) als String im Format RFC 3339.
- Label für den letzten Heartbeat-Zeitstempel (mit Schlüssel) – Der Wert dieser Bezeichnung gibt den Zeitstempel des letzten Heartbeat einer VM an, auf der das Produkt ausgeführt wird. Beispiel:
cloudmarketplacepartner.googleapis.com/last_heartbeat_us
Wenn ein Kunde über die Google Cloud Console auf den Link klickt, um deine Website aufzurufen, musst du prüfen, ob er autorisiert ist, den Link zu verwenden. Dazu führst du die folgenden Anfragen aus:
- Listen Sie die Abos für die externe Konto-ID auf.
- Suchen Sie das aktive Abo für das Produkt.
- Rufen Sie die Aboinformationen mithilfe der Abo-ID ab.
Wenn der Kunde ein autorisierter Nutzer ist, wird diese Anfrage erfolgreich sein. Wenn der Kunde kein autorisierter Nutzer für das Abo ist, wird beim Aufruf ein Fehlercode bezüglich fehlender Autorisierung (HTTP 403) zurückgegeben.
Dies erfordert, dass Sie während der Registrierung des Kunden mithilfe eines Standard-OAuth-Anfrageablaufs dessen Erlaubnis einholen, seine Abodaten zu lesen.
Spätere Anfragen zum Aktualisieren von Abodaten verwenden Ihr zuvor erstelltes Dienstkonto.
Registrierungsablauf für den Kundensupport
Nachdem ein Kunde Ihr Produkt über Cloud Marketplace oder über Compute Engine APIs bereitgestellt hat, zeigt er in der Google Cloud Console einen Link zu Ihrer Website an, um die Registrierung für den Support abzuschließen. Der Link enthält die externe Konto-ID, die für dieses Konto verwendet werden muss.
Ihre Website sollte es dem Kunden ermöglichen, ein Konto zu erstellen und alle nötigen Kontaktinformationen zu liefern. Google wird Ihnen keine personenbezogenen Daten über den Kunden zur Verfügung stellen. Sie sind für die Aufrechterhaltung einer Verknüpfung zwischen dessen Konto und der von Google bereitgestellten externen Konto-ID verantwortlich.