Mailchimp API v3 创建列表 REST 客户端 Ruby
Mailchimp API v3 create list REST Client Ruby
我正在尝试 create a Mailchimp list using Mailchimps API (v3) and the REST Client gem。我已经使它正常工作以检索列表名称和 ID。但是,我收到了关于创建列表的 401 Unauthorized - API Key Missing
响应。我认为我的 post 请求格式不正确,但我无法确定哪里出错了。我的代码如下所示:
params_hash = {
name: "#{territory}",
contact: {
company: "Company",
address1: "Address",
city: "City",
state: "State",
zip: "0000",
country: "US"
},
permission_reminder: "You are receiving this email because....",
campaign_defaults: {
from_name: "From Name",
from_email: "contact@contact.com",
subject: "Subject",
language: "en"
},
notify_on_subscribe: "contact1@contact.com",
notify_on_unsubscribe: "contact1@contact.com",
email_type_option: true,
apikey: mailchimp_key
}
RestClient.post("#{mailchimp_url}/lists", { params: params_hash }) { |response, request, result, &block|
}
您不应在有效负载中传递 API 密钥,而应使用 HTTP Basic Authentication。 RestClient 确实支持这个,但是有点尴尬。如果您想使用 RestClient 快捷方式,您可以修改 URL 以包含 username/password,如下所示: https://username:api_key@us1.api.mailchimp.com
-- 用户名对 MailChimp 无关紧要,但它是 Basic 所必需的Auth,所以你可以传递任何东西。
或者,您可以直接使用 RestClient 的 Request class,使您的请求变成这样:
RestClient::Request.execute(method: :post, url: "#{mailchimp_url}/lists", payload: params_hash, user: 'anything', password: mailchimp_key)
但是,老实说? RestClient 不是很好。我更喜欢 HTTParty,它允许您创建非常轻量级的包装器,并为您设置了很多默认值,或者像 RestClient 一样使用它,但更友好 API:
HTTParty.post("#{mailchimp_url}/lists", body: params_hash, basic_auth: {username: 'whatever', password: mailchimp_key})
我正在尝试 create a Mailchimp list using Mailchimps API (v3) and the REST Client gem。我已经使它正常工作以检索列表名称和 ID。但是,我收到了关于创建列表的 401 Unauthorized - API Key Missing
响应。我认为我的 post 请求格式不正确,但我无法确定哪里出错了。我的代码如下所示:
params_hash = {
name: "#{territory}",
contact: {
company: "Company",
address1: "Address",
city: "City",
state: "State",
zip: "0000",
country: "US"
},
permission_reminder: "You are receiving this email because....",
campaign_defaults: {
from_name: "From Name",
from_email: "contact@contact.com",
subject: "Subject",
language: "en"
},
notify_on_subscribe: "contact1@contact.com",
notify_on_unsubscribe: "contact1@contact.com",
email_type_option: true,
apikey: mailchimp_key
}
RestClient.post("#{mailchimp_url}/lists", { params: params_hash }) { |response, request, result, &block|
}
您不应在有效负载中传递 API 密钥,而应使用 HTTP Basic Authentication。 RestClient 确实支持这个,但是有点尴尬。如果您想使用 RestClient 快捷方式,您可以修改 URL 以包含 username/password,如下所示: https://username:api_key@us1.api.mailchimp.com
-- 用户名对 MailChimp 无关紧要,但它是 Basic 所必需的Auth,所以你可以传递任何东西。
或者,您可以直接使用 RestClient 的 Request class,使您的请求变成这样:
RestClient::Request.execute(method: :post, url: "#{mailchimp_url}/lists", payload: params_hash, user: 'anything', password: mailchimp_key)
但是,老实说? RestClient 不是很好。我更喜欢 HTTParty,它允许您创建非常轻量级的包装器,并为您设置了很多默认值,或者像 RestClient 一样使用它,但更友好 API:
HTTParty.post("#{mailchimp_url}/lists", body: params_hash, basic_auth: {username: 'whatever', password: mailchimp_key})