2016-07-27 13 views
0

Die folgende API-Anfrage:sendgrid Fehler "Zugang verboten", wenn sie versucht Benutzerprofil API GET

curl --request GET \ 
    --url https://api.sendgrid.com/v3/user/profile \ 
    --header 'Authorization: Bearer API KEY'\ 
    --header 'Content-Type: application/json' 

Aus der Dokumentation: https://sendgrid.com/docs/API_Reference/Web_API_v3/user.html

Ergebnisse in einer HTTP 403-Antwort mit dem folgenden Aufbau:

Ich ging zu Einstellungen -> API-Schlüssel und klickte auf 'Details bearbeiten', um die Berechtigungen zu sehen, die meinem API-Schlüssel gewährt wurden, und soweit ich das beurteilen kann, gibt es keine Erlaubnis, die ich kann rant (oder revozieren), das mit dem Benutzerprofil zu tun hat.

Nur um auf der sicheren Seite zu sein, habe ich jede einzelne Berechtigung für 'Vollzugriff' (wenn verfügbar) oder 'Lesezugriff' konfiguriert, wenn 'Vollzugriff' nicht verfügbar ist, aber ich bekomme immer noch diesen HTTP 403 Fehler .

Welche Berechtigung muss ich meinem API-Schlüssel erteilen, um mein Benutzerprofil abrufen zu können?

+0

Was verwenden Sie für den Wert von "API KEY" im Autorisierungsheader? Beginnt es mit "SG"? Ich möchte nur sicherstellen, dass Sie den API KEY und nicht die API KEY ID verwenden. Siehe hier: http://stackoverflow.com/questions/34789622/send-grid-seems-to-be-repreventing-my-node-js-server-sending-emails/34798357#34798357 –

+0

Ich bin sicher, dass ich verwendet habe der API-Schlüssel, der zu der Zeit angezeigt wurde, als der Schlüssel das erste Mal generiert wurde. Aber ich habe den gleichen Fehler {"errors": [{"field": null, "message": "access discretioned"}]} –

Antwort

1

Ich habe mich darin vertieft und verschiedene Dinge ausprobiert.

Sie können die Berechtigungen dafür nicht über die Benutzeroberfläche der Website einrichten. Sie müssen API-Aufrufe ausführen, um die Berechtigung festzulegen.

https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/api_key_permissions_list.html#User-Settings zeigt eine Liste aller möglichen Berechtigungen/Bereiche für Benutzereinstellungen.

https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/index.html#Update-the-name-amp-scopes-of-an-API-Key-PUT erläutert, wie Sie Ihrem API-Schlüssel Bereiche hinzufügen.

HINZUGEFÜGT: So ist das mehr gewunden als das. Sie können einen API-Schlüssel nicht verwenden, um einen API-Schlüssel zu ändern, es sei denn, dieser Schlüssel hat bereits Berechtigungen/Geltungsbereich für "api_keys.update". Das bedeutet, dass Sie sich in einem Catch befinden. 22. Anstatt den Berechtigungsheader "Authroization: Bearer {API_KEY}" zu verwenden, müssen Sie den ersten Aufruf zum Aktualisieren eines API-Schlüssels durchführen, damit dieser Bereich einen Basisautorisierungsheader wie "Authorization: Basic" verwendet {base64Encoded ("Benutzername: Passwort")} ". Ziemlich verworren und ein Schmerz, mit dem man sich gerade beschäftigen muss. Hört sich an, als würden sie in ein paar Wochen mit einer aktualisierten Benutzeroberfläche erscheinen, so dass wir alle diesen kleinen Haken 22 in Zukunft vermeiden können.