В API Customer Subuser отказано в разрешении
Я пытаюсь управлять лимитами учетных записей пользователей с помощью SendGrid Web API v2, но я продолжаю получать:
{u'error': {
u'message': u'Permission denied, not allowed to manage users',
u'code': 401
}}
То, что я делаю, это чтобы отправить в https://api.sendgrid.com/apiv2/customer.limit.json
с данными: api_user=your_sendgrid_username&api_key=your_sendgrid_password&user=subuser_username&task=retrieve
так же, как предполагают документы.
requests.post('https://api.sendgrid.com/apiv2/customer.limit.json',
data={'api_user': 'my_sg_username',
'api_key': 'my_sg_password',
'user': 'subuser_username',
'task': 'retrieve'
}).json()
Моя учетная запись имеет права администратора, и я могу вносить изменения через пользовательский интерфейс, но не с v2 API.
Есть ли где-нибудь вариант, который мне не хватает?
Несколько заметок:
- Я могу создавать подпользователей с v3 API
- Но я использую v2 здесь, потому что нет
account limits
варианты в v3. - Я получаю эту ошибку на всех
apiv2/customer.*.*
конечные точки, поэтому я не могу следовать этому руководству
2 ответа
Я тоже сталкиваюсь с той же проблемой. Я связался со службой поддержки. Говорят, что есть конечная точка v3 и она не документирована. Жду их ответа по этому вопросу. Обновлю эту тему, как только получу ответ от отправки
Кажется, это все еще проблема. Конечные точки V2 выдают ошибки аутентификации для управления субпользователями. Служба поддержки SendGrid сказала мне использовать следующую недокументированную конечную точку, которая мне подходит:
PUT https://api.sendgrid.com/v3/subusers/{subUserName}/credits
Body
{
"reset_frequency": "monthly",
"total": 10000,
"type": "recurring"
}
Я заметил, что после запуска этого есть задержка до 2-3 минут, прежде чем это отразится в онлайн-интерфейсе.
В API SendGrid v2 все аргументы являются аргументами данных формы, поэтому вам нужно убедиться, что вы передаете их как это, а не как часть тела. Но, похоже, у тебя уже есть это право.
Кроме того, это, скорее всего, что-то особенное для вашей учетной записи, поэтому вам нужно напрямую обратиться в службу поддержки SendGrid и дать им имя пользователя своей учетной записи.