Sendgrid Ruby API,尝试在post请求中发送Header内容

时间:2018-01-26 19:18:52

标签: ruby-on-rails ruby http saas

我正在尝试通过发送请求发送给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的正确语法的源。

如果你能帮助我,我会非常感激。谢谢!

2 个答案:

答案 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