Я пытаюсь создать новых подписчиков через API Buttondown.
API ожидает следующее тело:
{
"email": "string",
"notes": "string",
"referrer_url": "string",
"tags": [
"string"
]
}
Поле электронной почты является обязательным, все остальные необязательны.
Я могу успешно создать нового подписчика. Однако я не могу добавить теги.
Я уже создал тег с именем "маркетинг" и подтвердил его существование.
Я создаю нового подписчика так:
body = {
'email': params[:email],
'referrer_url': params[:referer],
'tags': ['marketing']
}
res = HTTParty.post(
'https://api.buttondown.email/v1/subscribers',
body: body,
headers: headers
)
Я ожидаю, что описанное выше создаст нового подписчика с тегом marketing. Но, судя по ответу, тег не попал в протокол.
{
"creation_date"=>"2020-04-22T16:06:22.114523Z",
"email"=>"user@example.com",
"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 что-нибудь, что указывает на то, что я неправильно отправляю тег?
1 ответ
Как говорит spickermann, мне нужно было установить тип контента в заголовках и вызвать to_json
в тело.
headers = {
...
'Content-Type' => 'application/json'
}
res = HTTParty.post(
'https://api.buttondown.email/v1/subscribers',
body: body.to_json,
headers: headers
)
Похожие вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].
'Content-Type' => 'application/json'
в заголовках? Вы пытались позвонитьbody.to_json
?