【问题标题】:Sendgrid Ruby API, Trying to send over Header content in post requestSendgrid Ruby API,尝试在 post 请求中发送 Header 内容
【发布时间】:2018-07-06 04:37:30
【问题描述】:

我正在尝试通过 Post 请求发送到 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,但在主帐户而不是子用户帐户上。标头是生成 API 密钥的驱动力,我似乎​​可以在网上找到任何来源,说明如何通过标头发送到 sendgrid 的正确语法。

如果您能提供帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 运行这段代码会发生什么?你有语法错误吗?你有例外吗?您是否收到来自 API 的失败响应?
  • @Mirv 我正在使用我的 api 密钥,并且在标题中我将指定我要为其生成 api 密钥的子用户,但由于某种原因,它所做的只是在 main 下创建 api 密钥帐户。如果他们什么都不做,我很确定我错误地传递了它。
  • @WayneConrad 没有错误。它成功了,我为主帐户生成了一个 api 密钥。它没有考虑标题
  • 最好编辑问题并将这些详细信息添加到其中。

标签: ruby-on-rails ruby http saas


【解决方案1】:

如果我理解正确,您想发送“来自”其他用户的电子邮件。代表是非标准的做事方式。 例如。 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

【讨论】:

    【解决方案2】:

    我最近不得不这样做。您需要在实例化客户端时而不是在发出请求时设置 On-Behalf-Of 标头:

    ```

    @send_grid = API.new(api_key: @api_key, request_headers: {
                   'On-Behalf-Of' => @username
                 })
    

    ```

    然后,当您使用 @send_grid 发出请求时,它将代表子用户发送 - API 密钥不会显示在父帐户的 api 密钥列表中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-31
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多