我正在尝试了解有关使用 http 请求和 Mailchimp API 的更多信息,但我似乎无法弄清楚如何使用 post 请求将成员添加到列表中。我尝试了多种配置,我想我取得了一些进展,因为我的响应从 405 变为 401,现在我收到 400。我认为这意味着我正在通过身份验证,但我错误地格式化了请求.
我已经让它可以在 python mailchimp 库中工作,但我想真正学习如何使用 HTTP 请求。我发现很少有将 python 请求与 Mailchimp 结合使用的示例。
(显然我输入了我的实际 list_id、my_username 和 my_apikey)
import requests, json
members_url = 'https://us15.api.mailchimp.com/3.0/lists/XXXXXXXX/members/'
auth = ('my_username', 'my_apikey')
headers = {'Content-Type': 'application/json'}
data1 = {
'email_address':'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="73111f121b33111f121b5d101c1e" rel="noreferrer noopener nofollow">[email protected]</a>',
'status':'subscribed',
'merge_fields':{
'FNAME':'John',
'LNAME':'Doe'
}
}
payload = json.dumps(data1)
response = requests.post(members_url, auth=auth, headers=headers, json=payload)
这是我的回复:
>>> response
<Response [400]>
我很困惑......我做错了什么?
这有效:
import requests, json
members_url = 'https://us15.api.mailchimp.com/3.0/lists/XXXXXXXX/members/'
auth = ('my_username', 'my_apikey')
headers = {'Content-Type': 'application/json'}
data1 = {
'email_address':'<a real email address>', #it could tell '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="70121c111830121c11185e131f1d" rel="noreferrer noopener nofollow">[email protected]</a> was fake'
'status':'subscribed',
'merge_fields':{
'FNAME':'John',
'LNAME':'Doe'
}
}
response = requests.post(members_url, auth=auth, headers=headers, json=data1)
最佳答案
这有效:
import requests, json
members_url = 'https://us15.api.mailchimp.com/3.0/lists/XXXXXXXX/members/'
auth = ('my_username', 'my_apikey')
headers = {'Content-Type': 'application/json'}
data1 = {
'email_address':'<a real email address>', #it could tell '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e48688858ca48688858cca878b89" rel="noreferrer noopener nofollow">[email protected]</a> was fake'
'status':'subscribed',
'merge_fields':{
'FNAME':'John',
'LNAME':'Doe'
}
}
response = requests.post(members_url, auth=auth, headers=headers, json=data1)
我的问题是 #1 我对 json 数据进行了双重编码,并且 #2 mailchimp 显然可以识别 BS 电子邮件地址,例如 [email protected]
谢谢@Alasdair
关于python - 使用 python requests 和 Mailchimp API v3 添加成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068456/