我正在尝试通过发送请求发送给sendgrid以生成子用户的API密钥。
这是我的代码目前的样子
body = JSON.parse('{
"name":"My API Key",
"scopes": [
"mail.send",
"alerts.create",
"alerts.read"
]
}')
header = {'On-Behalf-Of' => 'my@email.com'}
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
response = sg.client.api_keys.post(request_body: body, request_header: header)
此代码生成API但在主帐户而不是Subuser帐户。标题是驱动API密钥生成的地方,我似乎可以在网上找到任何关于如何通过标头发送到sendgrid的正确语法的源。
如果你能帮助我,我会非常感激。谢谢!
答案 0 :(得分:0)
我最近不得不这样做。在实例化客户端时,您需要设置On-Behalf-Of
标头,而不是在发出请求时:
```
@send_grid = API.new(api_key: @api_key, request_headers: {
'On-Behalf-Of' => @username
})
```
然后,当您使用@send_grid
发出请求时,它将代表子用户发送 - 并且API密钥不会显示在父帐户的api密钥列表中
答案 1 :(得分:-1)
如果我理解正确,你想发送电子邮件" From"另一个用户。代表非标准的做事方式。 例如。 https://sendgrid.com/docs/Classroom/Troubleshooting/Authentication/my_emails_are_displaying_as_on_behalf_of_or_via_in_some_mail_clients.html
您可以尝试设置from
而不是on-behalf-of
"from": {
"email": "from_address@example.com"
},
请参阅:https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html