繁体   English   中英

使用Python将POST请求发送到mailchimp API

[英]Send POST request to mailchimp API with Python

我试图将POST请求发送到mailchimp api,以将新成员添加到列表中,但是我不断收到一条错误消息,指出api密钥丢失。 当我发送get请求时,我将密钥包含在URL中,并且可以正常工作。

从Mailchimp文档中,似乎api键应该是请求的一部分,而参数(email_address和status)是正文的一部分,但是我不知道如何使用请求来做到这一点。 (我知道有一个用于Python的mailchimp模块,但是我需要做一些自定义的事情,所以我想解决这个问题)

这是我正在尝试的POST:

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密钥”,“状态”:401, “ detail”:“您的请求不包含API密钥。”,“ instance”:“”}

我还尝试将这个请求放在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'})

但是,我收到以下错误:request.exceptions.HTTPError:400客户端错误:URL的请求错误: https : //us15.api.mailchimp.com/3.0/lists/2be23de2cc/members

您为什么不试试这个包裹? https://github.com/charlesthk/python-mailchimp

您可以通过以下方式做到这一点:

from mailchimp3 import MailChimp
client = MailChimp('my_user', '{}-{}'.format(access_token, data_center))
client.lists.members.create('my_list_id', {'email_address': 'test@gmail.com', 'status': 'subscribed'})

测试时,请勿使用假电子邮件进行测试,因为Mailchimp具有一种全局禁止列表,可忽略垃圾邮件发送者使用的电子邮件。 在这种情况下,它将返回HTTP 400。

忽略代码header ={"Authorization","apikey xxxxx",的错字,就不会在标头中发送凭据或数据。 您首先需要进行身份验证,然后将订户信息作为POST有效负载发送,如下所示:

import pprint
import requests

username = 'foo'
apikey = 'sekret-key-goes-here'
url = "https://us15.api.mailchimp.com/3.0/lists/xxxxx/members/"

post_params = {'email_address': 'foo@example.com', 'status': 'subscribed'}

r = requests.post(url, auth=(username, apikey), json=post_params)
r.raise_for_status()

results = r.json()
pprint.pprint(results)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM