以下 API 请求:
curl --request GET \
--url https://api.sendgrid.com/v3/user/profile \
--header 'Authorization: Bearer API KEY'\
--header 'Content-Type: application/json'
Run Code Online (Sandbox Code Playgroud)
来自文档:https : //sendgrid.com/docs/API_Reference/Web_API_v3/user.html
结果是带有以下正文的 HTTP 403 响应:
{"errors":[{"field":null,"message":"access forbidden"}]}
Run Code Online (Sandbox Code Playgroud)
我转到“设置”->“API 密钥”并单击“编辑详细信息”以查看授予我的 API 密钥的权限,据我所知,没有任何我可以授予(或撤销)似乎相关的权限到“用户个人资料”。
为了安全起见,如果“完全访问”不可用,我已将每个权限配置为“完全访问”(可用时)或“读取访问”,但我仍然收到此 HTTP 403 错误。
为了能够检索我的用户个人资料,我需要授予我的 API 密钥什么权限?
mol*_*vec 22
旧版 API 不起作用。使用新的 API
我不知道它是否解决了某人,但我尝试使用此文档将联系人添加到 sendgrid 获取 {"errors":[{"field":null,"message":"access forbidden"}]}:
POST POST https://api.sendgrid.com/v3/contactdb/recipients HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
搜索更多后,我注意到一个新文档(相同版本的 API v3),但有非常不同的 API 方法:
https://sendgrid.api-docs.io/v3.0/contacts/add-or-update-a-contact
PUT https://api.sendgrid.com/v3/marketing/contacts
Run Code Online (Sandbox Code Playgroud)
Jus*_*ele 11
我深入研究并自己尝试了各种方法。
您无法通过网站 UI 设置此操作的权限。您必须通过 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 密钥添加范围。
补充:所以这比那更令人费解。您不能使用 API 密钥来修改 API 密钥,除非该密钥已经具有“api_keys.update”的权限/范围。这意味着您发现自己陷入了困境 22。而不是使用“Authroization: Bearer {API_KEY}”授权标头,您需要进行第一次调用以更新 API 密钥以使用基本授权标头(如“Authorization: Basic {base64Encoded("用户名:密码")}"。相当复杂,现在处理起来很痛苦。听起来他们希望在几周内推出更新的用户界面,这样我们都可以在未来避免这个小问题 22。
小智 5
这个错误也是由于api key权限不足导致的。
为了api key仅使用:
Go to Settings > Api keys > Edit Api Key > User Account
Run Code Online (Sandbox Code Playgroud)
中提琴!使用 API 密钥作为身份验证就像一个魅力。
curl --request GET \
--url https://api.sendgrid.com/v3/user/profile \
--header 'Authorization: Bearer API KEY'\
--header 'Content-Type: application/json'
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
17927 次 |
| 最近记录: |