webentwicklung-frage-antwort-db.com.de

Verwenden von Postman für den Zugriff auf OAuth 2.0 Google APIs

Ich versuche, mit Postman chrome app auf Proximity Google API zuzugreifen. Ich habe Tutorials auf der Website von Briefträger und Google Dev befolgt, erhalte aber immer noch die Fehlermeldung 401.

Was mache ich?

  • Schritt 1 - Proximity API aktivieren:

Um die Proximity-API verwenden zu können, muss sie zuerst in der Google Dev-Konsole aktiviert werden. Mit this Tutorial habe ich die Unterstützung für die Proximity API für mein Projekt aktiviert

  • Schritt 2 - Zugangsdaten abrufen:

Laut this Tutorial brauche ich eine Kunden-ID und ein Geheimnis. Hier bin ich verwirrt. Anmeldeinformationen-> Anmeldeinformationen hinzufügen-> OAuth2.0-Client-ID-> Optionsfeld Chrome App auswählen (da ich Postman verwende) -> letzten Teil der Chrome Web-Store-URL von Postman eingeben [ Das ist fhbjgbiflinjbdggehcddcbncdddomop] -> Klick auf die Schaltfläche "Erstellen" Diese Schritte generieren nur eine Client-ID, kein Geheimnis. Mache ich etwas falsch?

Über die Google Dev-Konsole kann eine JSON-Datei mit Client-ID, Authentifizierungs-URI und Token-URI heruntergeladen werden enter image description here

Ich habe dies heruntergeladen, aber dies ist wenig hilfreich, wenn ich Postman verwende. Ich vermute, dass diese JSON-Datei in einer JS-Anwendung enthalten sein kann.

  • Schritt 3 - Testen Sie die API mit Postman

enter image description here

Was bekomme ich? enter image description here

Wenn ich auf die Debug-URL klicke, wird der folgende Bildschirm angezeigt

enter image description here

49
Sai

Postman fragt die Google-API ab, die sich als Webanwendung ausgibt

Generiere ein OAuth 2.0 Token:

  1. Stellen Sie sicher, dass die Google-APIs aktiviert sind
  2. Erstellen Sie eine OAuth 2.0-Client-ID

    • Gehen Sie zu Google Console -> API -> OAuth Zustimmungsbildschirm
      • Hinzufügen getpostman.com zu den autorisierten Domains. Klicken Sie auf Speichern.
    • Gehen Sie zu Google Console -> API -> Anmeldeinformationen
      • Klicken Sie auf "Anmeldeinformationen erstellen" -> OAuth Client-ID -> Webanwendung
        • Name: 'getpostman'
        • Autorisierte Weiterleitungs-URIs: https://www.getpostman.com/oauth2/callback
    • Kopieren Sie das generierte Client ID und Client secret Felder zur späteren Verwendung
  3. Wählen Sie im Postboten die Registerkarte Autorisierung und anschließend den Typ "OAuth 2.0". Klicken Sie auf "Get New Access Token".

    • Füllen Sie das Formular NEUER ZUGRIFF ERHALTEN wie folgt aus
      • Tokenname: "Google OAuth getpostman"
      • Grant Type: "Autorisierungscode"
      • Rückruf-URL: https://www.getpostman.com/oauth2/callback
      • Auth URL: https://accounts.google.com/o/oauth2/auth
      • Zugriffs-Token-URL: https://accounts.google.com/o/oauth2/token
      • Kunden ID: Client ID in Schritt 2 generiert (z. B. "123456789012-abracadabra1234546789blablabla12.apps.googleusercontent.com")
      • Kundengeheimnis: Client secret in Schritt 2 generiert (z. B. 'ABRACADABRAus1ZMGHvq9R-L')
      • Gültigkeitsbereich: In den Google-Dokumenten finden Sie den erforderlichen Gültigkeitsbereich OAuth (z. B. https://www.googleapis.com/auth/cloud-platform)
      • Zustand: leer
      • Client-Authentifizierung: "Als Basic Auth-Header senden"
    • Klicken Sie auf "Token anfordern" und "Token verwenden".
  4. Legen Sie die Methode, die Parameter und den Text Ihrer Anfrage gemäß den Google-Dokumenten fest
39
DimaTX

Der beste Weg, den ich bisher gefunden habe, ist, hier zum Oauth= Spielplatz zu gehen: https://developers.google.com/oauthplayground/

  1. Wählen Sie die relevante Google API-Kategorie aus und wählen Sie dann den Bereich innerhalb dieser Kategorie in der Benutzeroberfläche aus.
  2. Um den Autorisierungscode abzurufen, klicken Sie auf die blaue Schaltfläche "API autorisieren". Tauschen Sie den Autorisierungscode für das Token durch Klicken auf die blaue Schaltfläche aus.
  3. Speichern Sie das OAuth2-Token und verwenden Sie es wie unten gezeigt.

Fügen Sie im HTTP-Header für die REST API-Anforderung Folgendes hinzu: "Authorization: Bearer". Hier ist Authorization der Schlüssel und "Bearer". Beispiel: "Authorization: Bearer za29.KluqA3vRtZChWfJDabcdefghijklmnopqrstuvwxyz6nAZT5T0y"

38
  1. gehen Sie zu https://console.developers.google.com/apis/credentials
  2. erstellen Sie Anmeldeinformationen für Webanwendungen.

Postman API Access

  1. benutze diese Einstellungen mit oauth2 in Postman:

SCOPE = https://www.googleapis.com/auth/admin.directory.userschema

geben Sie https://www.googleapis.com/admin/directory/v1/customer/customer-id/schemas ein

{
  "fields": [
    {
      "fieldName": "role",
      "fieldType": "STRING",
      "multiValued": true,
      "readAccessType": "ADMINS_AND_SELF"
    }
  ],
  "schemaName": "SAML"
}
  1. so patchen Sie die Benutzerbenutzung:

SCOPE = https://www.googleapis.com/auth/admin.directory.user

PATCH https://www.googleapis.com/admin/directory/v1/users/[email protected]

 {
  "customSchemas": {
     "SAML": {
       "role": [
         {
          "value": "arn:aws:iam::123456789123:role/Admin,arn:aws:iam::123456789123:saml-provider/GoogleApps",
          "customType": "Admin"
         }
       ]
     }
   }
}
11

Ich stellte fest, dass ich keine Anmeldeinformationen für den richtigen App-Typ generierte.
Wenn Sie Postman zum Testen von Google oAuth 2 APIs verwenden, wählen Sie
Anmeldeinformationen -> Anmeldeinformationen hinzufügen -> OAuth2.0-Client-ID -> Webanwendung .

enter image description here

7
Sai

Dies ist eine alte Frage, aber sie hat keine gewählte Antwort und ich habe dieses Problem gerade selbst gelöst. Hier ist meine Lösung:

  1. Stellen Sie zunächst sicher, dass Sie für die Arbeit mit Ihrer Google-API eingerichtet sind. Siehe Googles Liste der Voraussetzungen . Ich habe mit Google My Business gearbeitet, also habe ich auch den Prozess Erste Schritte durchlaufen.

  2. Bei OAuth 2.0-Spielplatz müssen Sie in Schritt 1 auswählen, welche API Sie authentifizieren möchten. Wählen Sie die für Ihren Fall zutreffende Option aus oder geben Sie sie ein (in meinem Fall für Google My Business musste ich https://www.googleapis.com/auth/plus.business.manage in das Feld "Geben Sie Ihre Adresse ein" ein Eingabefeld "Eigene Bereiche"). Hinweis: Dies ist das Gleiche wie in Schritt 6 des Abschnitts "Einfache HTTP-Anforderung erstellen" des Erste Schritte Handbuchs .

  3. Vorausgesetzt, die Authentifizierung ist erfolgreich, sollten Sie ein "Zugriffstoken" erhalten, das im Schritt "Ergebnis von Schritt 1" auf dem Spielplatz OAuth=) zurückgegeben wird. Kopieren Sie dieses Token in Ihre Zwischenablage.

  4. Öffnen Sie Postman und öffnen Sie die gewünschte Sammlung nach Bedarf.

  5. Stellen Sie in Postman sicher, dass "GET" als Anfragetyp ausgewählt ist, und klicken Sie auf die Registerkarte "Autorisierung" unter der Dropdown-Liste für den Anfragetyp.

  6. Wählen Sie im Dropdown-Menü Authorization "TYPE" die Option "Bearer Token".

  7. Fügen Sie Ihr zuvor kopiertes "Access Token", das Sie vom OAuth Spielplatz kopiert haben, in das Feld "Token" ein, das in Postman angezeigt wird.

  8. Fast dort! Um zu testen, ob etwas funktioniert, geben Sie https://mybusiness.googleapis.com/v4/accounts/ in die Haupt-URL-Eingabeleiste von Postman ein und klicken Sie auf die Schaltfläche "Senden". Sie sollten eine JSON-Liste mit Konten in der Antwort erhalten, die ungefähr wie folgt aussieht:

    
    {
        "accounts": [
            {
                "name": "accounts/REDACTED",
                "accountName": "REDACTED",
                "type": "PERSONAL",
                "state": {
                    "status": "UNVERIFIED"
                }
            },
            {
                "name": "accounts/REDACTED",
                "accountName": "REDACTED",
                "type": "LOCATION_GROUP",
                "role": "OWNER",
                "state": {
                    "status": "UNVERIFIED"
                },
                "permissionLevel": "OWNER_LEVEL"
            }
        ]
    }
    
4
irmalcol