У меня проблема при попытке создать теги / сегменты с помощью Gibbon, оболочки MailChimp для Ruby.
Я успешно использую Gibbon для большой производственной площадки в течение 2 лет, но мне нужно перейти от полей слияния к тегированию подписчиков.
Я могу успешно добавлять теги к подписчику через Gibbon, но существует более 85 000 пользователей, которые должны быть переведены, и я действительно не хочу делать 85 000 индивидуальных запросов.Существует более 200 возможных тегов, поэтому я хотел найти всех пользователей для каждого возможного тега, а затем опубликовать адреса электронной почты в конечной точке сегмента ... так что 200 запросов, а не 85 000.
Проблема в том, что если в списке уже есть тег (т.е. созданный мной тестовый тег), я получаю 400 error, Tag already exists
, а если тега не существует, я получаю 404 Resource Not Found
.Это то же самое, если я предоставляю адреса электронной почты в пределах static_segment
или нет.
Я ожидал бы, что следующее создаст тег в MailChimp:
request = Gibbon::Request.lists(<list_id>)
request.tags.create(body: { name: "testing3", static_segment: [] })
Тем не менее, я получаю следующую ошибку (то же самое, если я использую tags
или segments
взапрос):
I, [2019-06-06T10:33:59.711436 #88340] INFO -- request: POST https://us15.api.mailchimp.com/3.0/lists/<list_id>/tags
D, [2019-06-06T10:33:59.711556 #88340] DEBUG -- request: User-Agent: "Faraday v0.15.4"
Authorization: "Basic <key>"
Content-Type: "application/json"
D, [2019-06-06T10:33:59.711605 #88340] DEBUG -- request: {"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"Resource Not Found","status":404,"detail":"Invalid path","instance":"<instance_id>"}
I, [2019-06-06T10:33:59.711779 #88340] INFO -- response: Status 404
D, [2019-06-06T10:33:59.711839 #88340] DEBUG -- response: server: "openresty"
content-type: "application/problem+json; charset=utf-8"
x-request-id: "<instance_id>"
link: "<https://us15.api.mailchimp.com/schema/3.0/ProblemDetailDocument.json>; rel=\"describedBy\""
vary: "Accept-Encoding"
date: "Thu, 06 Jun 2019 09:33:59 GMT"
content-length: "204"
connection: "close"
set-cookie: "_AVESTA_ENVIRONMENT=prod; path=/, _mcid=1.b9640bf1122e4a9b277bb19e3d72caf6; expires=Fri, 05-Jun-2020 09:33:59 GMT; Max-Age=31536000; path=/; domain=.mailchimp.com"
D, [2019-06-06T10:33:59.711878 #88340] DEBUG -- response: {"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"Resource Not Found","status":404,"detail":"Invalid path","instance":"<instance_id>"}
Gibbon::MailChimpError: the server responded with status 404 @title="Resource Not Found", @detail="Invalid path", @body={:type=>"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/", :title=>"Resource Not Found", :status=>404, :detail=>"Invalid path", :instance=>"<instance_id>"}, @raw_body="{\"type\":\"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/\",\"title\":\"Resource Not Found\",\"status\":404,\"detail\":\"Invalid path\",\"instance\":\"<instance_id>\"}", @status_code=404
from /Users/Paul/.rvm/gems/<gemset>/gems/gibbon-3.2.0/lib/gibbon/api_request.rb:134:in `handle_error'
Caused by Faraday::ResourceNotFound: the server responded with status 404
from /Users/Paul/.rvm/gems/<gemset>/gems/faraday-0.15.4/lib/faraday/response/raise_error.rb:8:in `on_complete'
Я использую последнюю версию Gibbon 3.2.0
.
Когда я перебрался внутрь Gibbon::APIRequest.post
, чтобы увидеть генерируемый путьЯ вижу следующее:
(byebug) base_api_url
"https://us15.api.mailchimp.com/3.0/"
# For request.segments
(byebug) api_url
"https://us15.api.mailchimp.com/3.0/lists/<list_id>/segments"
# For request.tags
(byebug) api_url
"https://us15.api.mailchimp.com/3.0/lists/<list_id>/tags"
Любая помощь будет высоко ценится, так как я действительно не уверен, что я делаю неправильно.
Заранее спасибо.Павел.:)