2016-07-27 4 views
0

Следующий запрос API:sendgrid ошибка при попытке получить Профиль пользователя API "Доступ запрещен"

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

Из документов: https://sendgrid.com/docs/API_Reference/Web_API_v3/user.html

Результаты в ответ HTTP 403 со следующим телом:

{"errors":[{"field":null,"message":"access forbidden"}]} 

Я пошел в Настройки -> Ключи API и нажал «Изменить данные», чтобы просмотреть разрешения, предоставленные моему API-ключу, и, насколько я могу судить, нет никаких прав, rant (или отменить), который, похоже, связан с «профилем пользователя».

Для того, чтобы быть в безопасности, я настроил каждое разрешение на «Полный доступ» (если доступно) или «Чтение доступа», если «полный доступ» недоступен, но я все еще получаю эту ошибку HTTP 403 ,

Какое разрешение мне необходимо предоставить моему API-ключу, чтобы получить мой профиль пользователя?

+0

Что вы используете для значения «API KEY» в заголовке авторизации? Началось ли это с «SG»? Просто убедитесь, что вы используете API KEY, а не API KEY ID. См. Здесь: http://stackoverflow.com/questions/34789622/send-grid-seems-to-be-preventing-my-node-js-server-sending-emails/34798357#34798357 –

+0

Я уверен, что использовал ключ API, отображаемый во время создания ключа в первый раз. Но я получил ту же ошибку {"errors": [{"field": null, "message": "access forbidden"}]} –

ответ

1

Я вникнул в это и попробовал разные вещи самостоятельно.

Вы не можете установить разрешения для этого, используя веб-интерфейс веб-сайта. Вы должны сделать API-вызовы для установки разрешения.

https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/api_key_permissions_list.html#User-Settings показывает список всех возможных разрешений/областей для пользовательских настроек.

https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/index.html#Update-the-name-amp-scopes-of-an-API-Key-PUT объясняет, как добавить области действия к вашему ключу API.

ADDED: Так что это более запутанно, чем это. Вы не можете использовать ключ API для изменения API-ключа, если только этот ключ не имеет прав доступа/области действия к «api_keys.update». Это означает, что вы оказались в уловке 22. Вместо использования заголовка авторизации «Authroization: Bearer {API_KEY}» вам необходимо сделать первый вызов, чтобы обновить ключ API, чтобы использовать эту область с помощью основного заголовка авторизации, например «Авторизация: базовая {base64Encoded ("имя пользователя: пароль")}». Довольно запутанная и боль, с которой приходится иметь дело прямо сейчас. Похоже, что они выходят с обновленным UI, надеюсь, через несколько недель, поэтому мы все можем избежать этого небольшого улова 22 в будущем.

Смежные вопросы