用HTTParty在body中发送带有数组的POST请求。

问题描述 投票:0回答:1

我试图通过Buttondown API创建新的订阅者。

文件在这里.

api期望以下主体。

{
  "email": "string",
  "notes": "string",
  "referrer_url": "string",
  "tags": [
    "string"
  ]
}

电子邮件字段是必须的,其他都是可选的。

我可以成功地创建一个新的订阅者,但是,我无法添加任何标签。但是,我无法添加任何标签。

我已经创建了一个名为 "marketing "的标签,并确认它的存在。

我像这样创建一个新的订阅者。

  body = {
    'email': params[:email],
    'referrer_url': params[:referer],
    'tags': ['marketing']
  }

  res = HTTParty.post(
          'https://api.buttondown.email/v1/subscribers', 
          body: body,
          headers: headers
        )

我希望上面的方法能创建一个新的订阅者,并带有以下内容 营销 标签。但是,从响应来看,这个标签并没有进入记录。

{
  "creation_date"=>"2020-04-22T16:06:22.114523Z",
   "email"=>"[email protected]",
   "id"=>"********-****-****-****-************",
   "notes"=>"",
   "referrer_url"=>"http://localhost:3000/",
   "metadata"=>{},
   "secondary_id"=>18,
   "subscriber_type"=>"regular",
   "source"=>"api",
   "tags"=>[],
   "utm_campaign"=>"",
   "utm_medium"=>"",
   "utm_source"=>""
}

我发送数组是否正确?我的POST请求是否正确?Buttondown文档中是否有任何内容表明我没有正确发送标签?

ruby rest httparty
1个回答
-1
投票

作为"... 挑夫 说,我需要在标题中设置内容类型,并调用 to_json 身上的。

    headers = {
      ...
      'Content-Type' => 'application/json'
    }
    res = HTTParty.post(
      'https://api.buttondown.email/v1/subscribers', 
      body: body.to_json,
      headers: headers
    )
© www.soinside.com 2019 - 2024. All rights reserved.