【发布时间】:2017-10-16 17:08:51
【问题描述】:
我正在尝试向 mailchimp api 发送 POST 请求以将新成员添加到列表中,但我不断收到错误消息,提示缺少 api 密钥。当我发送一个获取请求时,我在 URL 中包含了密钥并且它工作正常。
从 Mailchimp 文档看来,api 密钥应该是请求的一部分,而参数(email_address 和状态)应该是正文的一部分,但我不明白如何使用请求来做到这一点。 (我知道 Python 有一个 mailchimp 模块,但我有一些自定义的事情要做,我想了解一下)
这是我要开始的帖子:
import requests
url="https://us15.api.mailchimp.com/3.0/lists/xxxxx/members/"
header ={"Authorization":"apikey xxxxx",
"email_address":"test@gmail.com",
"status":"subscribed"}
r=requests.post(url,header)
print r.text
我收到的错误是:{"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"API Key Missing","status":401,"detail":"您的请求不包含 API 密钥。 ","实例":""}
我还尝试将此请求放在 Postman 中,您可以轻松地将标题和正文分开,但它给出了相同的响应。
我也尝试过使用 Mailchimp3 包,但这给了我一个错误的请求。我使用的代码如下:
from mailchimp3 import MailChimp
client = MailChimp('edgar@mymailserver.nl', '{}-{}'.format('xxxxxxxxxxxxxxxxxxxxxxx','us15'))
client.lists.members.create('2be23de2cc', {'email_address': 'john.doe@example.com','status': 'subscribed'})
但是,我收到以下错误:requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://us15.api.mailchimp.com/3.0/lists/2be23de2cc/members
【问题讨论】:
-
您是否尝试过
curl --request POST \ --url 'https://usX.api.mailchimp.com/3.0/lists/57afe96172/members' \ --user 'anystring:apikey' \ --header 'content-type: application/json' \ --data '{"email_address":"urist.mcvankab+3@freddiesjokes.com", "status":"subscribed"}' \ --include参考developer.mailchimp.com/documentation/mailchimp/reference/lists/… 或更新列表成员尝试发送api 密钥,例如--user 'anystring:apikey' -
看到了curl,但是不明白怎么把这样的请求放到python代码里,所以不知道怎么试。
-
如果您不确定如何在 python 中发送请求,请使用package
-
这不正是我在问题中发布的代码中使用的包还是我没有得到它?
标签: python api mailchimp-api-v3.0