Data Portability API verwenden

In dieser Kurzanleitung erhalten Sie ein OAuth-Token für Ihr Konto und senden Anfragen an die Data Portability API-Endpunkte.

Lerninhalte

In dieser Kurzanleitung erfahren Sie, wie Sie:

  • Durch Angabe eines gültigen OAuth-Tokens senden Sie eine authentifizierte Anfrage an den Endpunkt InitiatePortabilityArchive. Die Antwort sollte eine gültige job_id enthalten.
  • Senden Sie eine authentifizierte Anfrage an den Endpunkt GetPortabilityArchiveState. Die Antwort sollte einen gültigen Jobstatus und nach Abschluss des Jobs eine signierte URL enthalten.
  • (Optional) Senden Sie ein zweites Mal eine authentifizierte Anfrage mit einem gültigen OAuth-Token an den Endpunkt InitiatePortabilityArchive. Verwenden Sie dieselben Anmeldedaten. Dadurch wird der Fehler RESOURCE_EXHAUSTED zurückgegeben und die Bedeutung des Endpunkts ResetAuthorization hervorgehoben.
  • Senden Sie eine authentifizierte Anfrage an den Endpunkt ResetAuthorization. Mit dieser Anfrage werden alle vom Nutzer gewährten OAuth-Bereiche widerrufen.
  • (Optional) Senden Sie eine Anfrage mit demselben OAuth-Token, das Sie zuvor verwendet haben, an den Endpunkt InitiatePortabilityArchive. Die Anfrage sollte nach dem Zurücksetzen der Autorisierung fehlschlagen.

Voraussetzungen

So führen Sie diese Kurzanleitung aus:

  • Prüfen Sie, ob die Data Portability API für Nutzer an Ihrem Standort verfügbar ist. Eine Liste der unterstützten Länder und Regionen finden Sie unter Häufig gestellte Fragen auf der Seite „Kopie Ihrer Daten mit Drittanbietern teilen“.
  • Führen Sie die Einrichtungsschritte für die Data Portability API aus.
  • Konfigurieren Sie OAuth für JavaScript-Web-Apps. In der Produktion verwenden Sie normalerweise einen anderen Ablauf wie den OAuth-Ablauf für Webserveranwendungen. Der Einfachheit halber wird in dieser Kurzanleitung der JavaScript-Webanwendungsablauf verwendet.
  • Rufen Sie ein OAuth-Token ab.
  • Zugriff auf ein Konto erhalten, das Ihrer Organisation gehört oder von dieser kontrolliert wird. Die Daten zu den Suchaktivitäten dieses Kontos werden in dieser Kurzanleitung exportiert.

OAuth-Token abrufen

Im Rahmen dieser Kurzanleitung senden Sie eine Autorisierungsanfrage, um ein OAuth-Token über eine URL abzurufen. Dieser Prozess verwendet den Ablauf für JavaScript-Web-Apps. Bei diesem Ablauf wird kein Aktualisierungstoken zurückgegeben.

Bei einer Produktionsanwendung verwenden Sie normalerweise einen OAuth-Ablauf, um ein Aktualisierungstoken abzurufen, mit dem bei Bedarf Zugriffstokens generiert werden können. Ein Beispiel hierfür wäre der Ablauf für serverseitige Webanwendungen.

So rufen Sie ein OAuth-Token ab:

  1. Erstellen Sie eine URL wie die folgende.

    https://accounts.google.com/o/oauth2/v2/auth?
    client_id=client_id&
    redirect_uri=redirect_uri&
    response_type=token&
    scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
    include_granted_scopes=true&
    state=developer-specified-value
    

    In der URL:

    • client_id ist deine OAuth-Client-ID.
    • redirect_uri ist der autorisierte Weiterleitungs-URI, z. B. https://google.com.

    Beachten Sie, dass in der URL für diese Kurzanleitung der Bereich der Suchaktivität verwendet wird. Sie können auch den YouTube-Aktivitätsbereich oder beide Bereiche verwenden.

  2. Füge die URL in die Adressleiste des Browsers ein und folge den Schritten im OAuth-Ablauf. Für diesen Ablauf müssen Sie sich in dem Konto anmelden, das Ihrer Organisation gehört oder von ihr kontrolliert wird und für die Sie diese Kurzanleitung verwenden.

    Das ist das Konto, das den OAuth-Bereichen zugestimmt hat. Der Zustimmungsbildschirm sollte so aussehen (der Text auf Ihrem Bildschirm kann vom Text in diesem Bild abweichen):

    Der Zustimmungsbildschirm, auf dem der Nutzer zustimmt, auf Daten zu Suchaktivitäten zuzugreifen

  3. Nachdem Sie die Einwilligung erteilt haben, sollten Sie an den Weiterleitungs-URI https://google.com weitergeleitet werden. Die in der Adressleiste generierte URL enthält das OAuth-Zugriffstoken.

    Wenn das Nutzerkonto beispielsweise OAuth-Zugriff auf den Bereich dataportability.myactivity.search gewährt, sieht die generierte URL so aus:

    https://google.com/#state=developer-specified-value&access_token=<your_OAuth_token>&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/dataportability.myactivity.search
    

    In der URL ist <Ihr_OAuth_token> ein String, der das Token darstellt.

  4. Fügen Sie die folgende URL in Ihren Browser ein, um das OAuth-Token zu validieren:

    https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=your_OAuth_token
    

    Die Antwort sollte in etwa so aussehen:

    {
      "azp": <your_azp_value>,
      "aud": <your_aud_value>,
      "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search",
      "exp": "1694210968",
      "expires_in": "3334",
      "access_type": "online"
    }
    
  5. Legen Sie Ihr OAuth-Token und Ihren API-Schlüssel zusammen. Sie benötigen diese, um Aufrufe an die Data Portability API senden zu können.

Anfragen an die Endpunkte senden

In dieser Kurzanleitung verwenden Sie curl-Befehle, um die Data Portability API-Endpunkte aufzurufen. Für diese Befehle sind das OAuth-Token und der API-Schlüssel erforderlich, die Sie zuvor erfasst haben.

So rufen Sie die Data Portability API auf:

  1. Senden Sie zuerst eine authentifizierte Anfrage an den Endpunkt InitiatePortabilityArchive. Diese Anfrage startet einen Archivierungsjob.

    Führen Sie den folgenden curl-Befehl aus:

    curl -H 'Authorization: Bearer your_OAuth_token' -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{"resources":["myactivity.search"]}' \
    https://dataportability.googleapis.com/v1/portabilityArchive:initiate
    

    Nehmen Sie folgende Änderungen am Befehl vor:

    • your_OAuth_token ist das OAuth-Token.

    HINWEIS: Der Parameter resources sollte nur die OAuth-Bereiche enthalten, denen Zugriff gewährt wurde. In diesem Beispiel wurde nur myactivity.search gewährt. Wenn Sie weitere Ressourcengruppen hinzufügen, wird ein Fehler zurückgegeben.

    Die InitiatePortabilityArchive-Anfrage gibt einen job_id-Wert zurück. Mit dieser Job-ID wird der Status des Datenarchivs abgerufen.

    {
      "archiveJobId": "<your_job_id>"
    }
    

    Wenn Sie kein gültiges OAuth-Token angeben, wird diese Fehlermeldung zurückgegeben:

    Request had invalid authentication credentials. Expected OAuth 2.0 access
    token, login cookie or other valid authentication credential. See
    https://developers.google.com/identity/sign-in/web/devconsole-project.

  2. Als Nächstes senden Sie eine authentifizierte Anfrage an den Endpunkt GetPortabilityArchiveState, um den Status des Archivierungsjobs abzurufen.

    Führen Sie den folgenden curl-Befehl aus:

    curl -H 'Authorization: Bearer your_OAuth_token' -X GET \
    -H "Content-Type: application/json; charset=utf-8" \
    https://dataportability.googleapis.com/v1/archiveJobs/your_job_id/portabilityArchiveState
    

    Nehmen Sie folgende Änderungen am Befehl vor:

    • your_OAuth_token ist das OAuth-Token.
    • your_job_id ist die Job-ID, die von der InitiatePortabilityArchive-Anfrage zurückgegeben wird.

    Die Antwort basiert auf dem state des Jobs. Wenn der Job nicht abgeschlossen ist, enthält die Antwort den aktuellen Status. Sie sollten regelmäßig Anfragen an diesen Endpunkt senden, bis der Job abgeschlossen ist.

    {
      "state": "IN_PROGRESS"
    }
    

    Wenn der Job abgeschlossen ist, enthält die Antwort den Status und eine oder mehrere signierte URLs, die zum Herunterladen des Datenarchivs verwendet werden.

    {
      "state": "COMPLETE",
      "urls": [
        "<signed_url>"
      ]
    }
    

    Fügen Sie die signierte URL in Ihren Browser ein, um das Datenarchiv herunterzuladen. Prüfen Sie, ob der Inhalt des Archivs die erwarteten Daten zu Suchaktivitäten enthält.

  3. (Optional) Wiederholen Sie den vorherigen Befehl, um eine authentifizierte Anfrage an den Endpunkt InitiatePortabilityArchive zu senden.

    curl -H 'Authorization: Bearer your_OAuth_token' -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{"resources":["myactivity.search"]}' \
    https://dataportability.googleapis.com/v1/portabilityArchive:initiate
    

    Nehmen Sie folgende Änderungen am Befehl vor:

    • your_OAuth_token ist das OAuth-Token.

    Die Antwort sollte anzeigen, dass die einmalige Einwilligung für die Ressource myactivity.search für diesen Nutzer aufgebraucht ist.

    ...
      "error":
        {
          "code": 429,
      "message": "Resource has been exhausted (check quota).",
      "status": "RESOURCE_EXHAUSTED"
    }
    
  4. Senden Sie eine authentifizierte Anfrage an den Endpunkt ResetAuthorization. Mit dieser Anfrage werden alle vom Nutzer gewährten OAuth-Bereiche widerrufen und Sie können InitiatePortabilityArchive für eine Ressourcengruppe aufrufen, die Sie bereits verwendet haben.

    curl -H 'Authorization: Bearer your_OAuth_token' -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    https://dataportability.googleapis.com/v1/authorization:reset
    

    Nehmen Sie folgende Änderungen am Befehl vor:

    • your_OAuth_token ist das OAuth-Token.

    Dieser Befehl gibt eine leere Antwort zurück.

  5. (Optional) Senden Sie nach dem Zurücksetzen der Autorisierung eine weitere Anfrage an den Endpunkt InitiatePortabilityArchive. Verwenden Sie denselben curl-Befehl wie zuvor.

    curl -H 'Authorization: Bearer your_OAuth_token' -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{"resources":["myactivity.search"]}' \
    https://dataportability.googleapis.com/v1/portabilityArchive:initiate
    

    Nehmen Sie folgende Änderungen am Befehl vor:

    • your_OAuth_token ist das OAuth-Token.

    Die Antwort sollte einen Fehler zurückgeben, da das von Ihnen angegebene OAuth-Token widerrufen wurde.

    ...
      "error": {     
        "code": 401,    
            "message": "Request had invalid authentication credentials. Expected
            OAuth 2 access token, login cookie or other valid authentication
            credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
            "status": "UNAUTHENTICATED"
      }