一个客户端蟒蛇
mailchimp3的Python项目详细描述
python mailchimp api
使用请求的MailChimp API v3的Straighforward Python客户端= 2.7.0条。
开始
安装
此客户端以名称mailchimp3托管在pypi上,以便安装 它,只需运行
pip install mailchimp3
从v2.x升级
初始化mailchimp api的参数顺序如下 从2.1.0开始反转,因为用户名是 基本认证请颠倒参数的顺序或删除 完全是用户名参数。身份验证参数的名称具有 也从mc_secret更改为mc_api。
从v1.x升级
2.x的安装过程与以前相同,但是 这里面的命名约定有很多变化吗 包装器和调用某些方法的方式。请阅读 有关新结构和 扩展功能。在这个版本中,所有记录的端点都是 已实现,并且所有终结点方法都可用。
历史记录
最新的 changelog 截至2017年3月3日列出的功能。
初始化
从您的mailchimp帐户(account>;extra>;api)中获取YOUR_API_KEY。 钥匙)。YOUR_USERNAME是用于登录网站和 是可选的。
from mailchimp3 import MailChimp client = MailChimp(mc_api='YOUR_API_KEY', mc_user='YOUR_USERNAME')
OAuth支持
除了HTTP基本身份验证,MailChimp还支持 通过OAuth2进行身份验证。获取适当信息 可以找到访问密钥 here。
分页
只需在函数中添加count和offset参数。这个 count是要返回多少条记录,offset是要返回多少条记录 跳过。对于允许分页参数的端点,all() 方法有一个附加的布尔get_all参数,该参数将循环 通过所有记录,直到api不再返回任何以获取所有 不手动执行附加查询的记录。默认情况下, 对于所有支持它的端点,count为10,offset为0。这个 get_all任何端点上all()方法的参数默认为 false,它遵循调用中提供的值,并使用 get_all=True将忽略提供的计数和偏移量以确保 所有的记录都被归还。使用“全部获取”时,计数将为 5000,以获取大量记录,而不让系统充斥 请求。计数的大小不应影响 预计会返回极少量的记录,并且应该改进 如果获取5000条记录只能提供 防止发出大量请求的延迟。
client.lists.members.all('123456', count=100, offset=0)
字段
许多端点允许您选择将从中返回哪些字段 所有可用字段(例如,仅成员的电子邮件地址)。 只需在函数中添加fields参数。仅以下 显示列表123456中每个成员的电子邮件地址和ID:
client.lists.members.all('123456', get_all=True, fields="members.email_address,members.id")
示例
# returns all the lists (only name and id) client.lists.all(get_all=True, fields="lists.name,lists.id") # returns all members inside list '123456' client.lists.members.all('123456', get_all=True) # return the first 100 member's email addresses for the list with id 123456 client.lists.members.all('123456', count=100, offset=0, fields="members.email_address") # returns the list matching id '123456' client.lists.get('123456') # add John Doe with email john.doe@example.com to list matching id '123456' client.lists.members.create('123456', { 'email_address': 'john.doe@example.com', 'status': 'subscribed', 'merge_fields': { 'FNAME': 'John', 'LNAME': 'Doe', }, }) # returns all the campaigns client.campaigns.all(get_all=True) # You can also disable at runtime with the optional ``enabled`` parameter. # Every API call will return None client = MailChimp('YOUR SECRET KEY', enabled=False) # You are encouraged to specify a value in seconds for the ``timeout`` # parameter to avoid hanging requests. client = MailChimp('YOUR SECRET KEY', timeout=10.0) # You are encouraged to specify a User-Agent for requests to the MailChimp # API. Headers can be specified using the ``request_headers`` parameter. headers = requests.utils.default_headers() headers['User-Agent'] = 'Example (example@example.com)' client = MailChimp('YOUR SECRET KEY', request_headers=headers)
API结构
所有端点都遵循官方mailcimp api中列出的结构 v3文档。结构将在下面列出,然后 之后提供个别方法。
MailChimp +- Root +- Authorized Apps +- Automations | +- Actions | +- Emails | | +- Actions | | +- Queues | +- Removed Subscribers +- Batch Operations +- Batch Webhooks +- Campaign Folders +- Campaigns | +- Actions | +- Content | +- Feedback | +- Send Checklist +- Conversations | +- Messages +- Stores | +- Carts | | +- Lines | +- Customers | +- Orders | | +- Lines | +- Products | +- Images | +- Variants | +- Promo Rules | +- Promo Codes +- File Manager Files +- File Manager Folders +- Lists | +- Abuse Reports | +- Activity | +- Clients | +- Growth History | +- Interest Categories | | +- Interests | +- Members | | +- Activity | | +- Goals | | +- Notes | +- Merge Fields | +- Segments | | +- Segment Members | +- Signup Forms | +- Twitter Lead Generation Carts | +- Webhooks +- Ping +- Reports | +- Campaign Abuse | +- Campaign Advice | +- Campaign Open reports | +- Click Reports | | +- Members | +- Domain Performance | +- EepURL Reports | +- Email Activity | +- Google Analytics | +- Location | +- Sent To | +- Sub-Reports | +- Unsubscribes +- Seach Campaigns +- Search Members +- Template Folders +- Templates +- Default Content
API端点
下面是可以调用的所有终结点和方法的列表 反对他们。任何具有接受id参数的方法的终结点 (例如,授权的应用程序终结点中的应用程序ID或 列表成员终结点中的订阅者哈希)将记录所有ID 传递的以及由只返回的方法生成的 某些端点上存在的单个结果,如create()方法。 这些存储的属性仅在他们是 传递或创建于,必须再次传递才能与较低的 或更高级别,如访问列表,然后访问成员。下面 代码假设您已经初始化了mailcimp类,如下所示 上面的名字是client。
根
根
client.root.get()
自动化
自动化
client.automations.all(get_all=False)
client.automations.get(workflow_id='')
自动化操作
client.automations.actions.pause(workflow_id='')
client.automations.actions.start(workflow_id='')
自动化电子邮件
client.automations.emails.all(workflow_id='')
client.automations.emails.get(workflow_id='', email_id='')
自动化电子邮件操作
client.automations.emails.actions.pause(workflow_id='', email_id='')
client.automations.emails.actions.start(workflow_id='', email_id='')
自动化电子邮件队列
client.automations.emails.queues.create(workflow_id='', email_id='', data={})
client.automations.emails.queues.all(workflow_id='', email_id='')
client.automations.emails.queues.get(workflow_id='', email_id='', subscriber_hash='')
自动化删除了订户
client.automations.removed_subscribers.create(workflow_id='', data={})
client.automations.removed_subscribers.all(workflow_id='')
自动化
client.automations.all(get_all=False)
client.automations.get(workflow_id='')
自动化操作
client.automations.actions.pause(workflow_id='')
client.automations.actions.start(workflow_id='')
自动化电子邮件
client.automations.emails.all(workflow_id='') client.automations.emails.get(workflow_id='', email_id='')
自动化电子邮件操作
client.automations.emails.actions.pause(workflow_id='', email_id='')
client.automations.emails.actions.start(workflow_id='', email_id='')
自动化电子邮件队列
client.automations.emails.queues.create(workflow_id='', email_id='', data={})
client.automations.emails.queues.all(workflow_id='', email_id='')
client.automations.emails.queues.get(workflow_id='', email_id='', subscriber_hash='')
自动化删除了订户
client.automations.removed_subscribers.create(workflow_id='', data={})
client.automations.removed_subscribers.all(workflow_id='')
批处理操作
批处理操作
client.batch_operations.create(data={})
client.batch_operations.all(get_all=False)
client.batch_operations.get(batch_id='')
client.batch_operations.delete(batch_id='')
client.batch_operations.create(data={}) client.batch_operations.all(get_all=False) client.batch_operations.get(batch_id='') client.batch_operations.delete(batch_id='')
批量webhooks
batch webhook
client.batch_webhooks.create(data={}) client.batch_webhooks.all(get_all=False) client.batch_webhooks.get(batch_webhook_id='') client.batch_webhooks.update(batch_webhook_id='', data={}) client.batch_webhooks.delete(batch_webhook_id='')
活动
文件夹
client.campaign_folders.create(data={})
client.campaign_folders.all(get_all=False)
client.campaign_folders.get(folder_id='')
client.campaign_folders.update(folder_id='', data={})
client.campaign_folders.delete(folder_id='')
活动
client.campaigns.create(data={})
client.campaigns.all(get_all=False)
client.campaigns.get(campaign_id='')
client.campaigns.update(campaign_id='')
client.campaigns.delete(campaign_id='')
战役行动
client.campaigns.actions.cancel(campaign_id='')
client.campaigns.actions.pause(campaign_id='')
client.campaigns.actions.replicate(campaign_id='')
client.campaigns.actions.resume(campaign_id='')
client.campaigns.actions.schedule(campaign_id='', data={})
client.campaigns.actions.send(campaign_id='')
client.campaigns.actions.test(campaign_id='', data={})
client.campaigns.actions.unschedule(campaign_id='')
活动内容
client.campaigns.content.get(campaign_id='')
client.campaigns.content.update(campaign_id='', data={})
活动反馈
client.campaigns.feedback.create(campaign_id='', data={})
client.campaigns.feedback.all(campaign_id='', get_all=False)
client.campaigns.feedback.get(campaign_id='', feedback_id='')
client.campaigns.feedback.update(campaign_id='', feedback_id='', data={})
client.campaigns.feedback.delete(campaign_id='', feedback_id='')
活动发送清单
client.campaigns.send_checklist.get(campaign_id='')
文件夹
client.campaign_folders.create(data={}) client.campaign_folders.all(get_all=False) client.campaign_folders.get(folder_id='') client.campaign_folders.update(folder_id='', data={}) client.campaign_folders.delete(folder_id='')
活动
client.campaigns.create(data={})
client.campaigns.all(get_all=False)
client.campaigns.get(campaign_id='')
client.campaigns.update(campaign_id='')
client.campaigns.delete(campaign_id='')
战役行动
client.campaigns.actions.cancel(campaign_id='')
client.campaigns.actions.pause(campaign_id='')
client.campaigns.actions.replicate(campaign_id='')
client.campaigns.actions.resume(campaign_id='')
client.campaigns.actions.schedule(campaign_id='', data={})
client.campaigns.actions.send(campaign_id='')
client.campaigns.actions.test(campaign_id='', data={})
client.campaigns.actions.unschedule(campaign_id='')
活动内容
client.campaigns.content.get(campaign_id='')
client.campaigns.content.update(campaign_id='', data={})
活动反馈
client.campaigns.feedback.create(campaign_id='', data={})
client.campaigns.feedback.all(campaign_id='', get_all=False)
client.campaigns.feedback.get(campaign_id='', feedback_id='')
client.campaigns.feedback.update(campaign_id='', feedback_id='', data={})
client.campaigns.feedback.delete(campaign_id='', feedback_id='')
活动发送清单
client.campaigns.send_checklist.get(campaign_id='')
对话
对话
client.conversations.all(get_all=False) client.conversations.get(conversation_id='')
对话信息
client.conversations.messages.create(conversation_id='', data={}) client.conversations.messages.all(conversation_id='') client.conversations.messages.get(conversation_id='', message_id='')
电子商务
商店
client.stores.create(data={})
client.stores.all(get_all=False)
client.stores.get(store_id='')
client.stores.update(store_id='', data={})
client.stores.delete(store_id='')
购物车
client.stores.carts.create(store_id='', data={})
client.stores.carts.all(store_id='', get_all=False)
client.stores.carts.get(store_id='', cart_id='')
client.stores.carts.update(store_id='', cart_id='', data={})
client.stores.carts.delete(store_id='', cart_id='')
购物车系列
client.stores.carts.lines.create(store_id='', cart_id='', data={})
client.stores.carts.lines.all(store_id='', cart_id='', get_all=False)
client.stores.carts.lines.get(store_id='', cart_id='', line_id='')
client.stores.carts.lines.update(store_id='', cart_id='', line_id='', data={})
client.stores.carts.lines.delete(store_id='', cart_id='', line_id='')
商店顾客
client.stores.customers.create(store_id='', data={})
client.stores.customers.all(store_id='', get_all=False)
client.stores.customers.get(store_id='', customer_id='')
client.stores.customers.update(store_id='', customer_id='', data={})
client.stores.customers.create_or_update(store_id='', customer_id='', data={})
client.stores.customers.delete(store_id='', customer_id='')
商店订单
client.stores.orders.create(store_id='', data={})
client.stores.orders.all(store_id='', get_all=False)
client.stores.orders.get(store_id='', order_id='')
client.stores.orders.update(store_id='', order_id='', data={})
client.stores.orders.delete(store_id='', order_id='')
商店订单行
client.stores.orders.lines.create(store_id='', order_id='', data={})
client.stores.orders.lines.all(store_id='', order_id='', get_all=False)
client.stores.orders.lines.get(store_id='', order_id='', line_id='')
client.stores.orders.lines.update(store_id='', order_id='', line_id='', data={})
client.stores.orders.lines.delete(store_id='', order_id='', line_id='')
存储产品
client.stores.products.create(store_id='', data={})
client.stores.products.all(store_id='', get_all=False)
client.stores.products.get(store_id='', product_id='')
client.stores.products.update(store_id='', product_id='')
client.stores.products.delete(store_id='', product_id='')
存储产品图像
client.stores.products.images.create(store_id='', product_id='', data={})
client.stores.products.images.all(store_id='', product_id='', get_all=False)
client.stores.products.images.get(store_id='', product_id='', image_id='')
client.stores.products.images.update(store_id='', product_id='', image_id='', data={})
client.stores.products.images.delete(store_id='', product_id='', image_id='')
存储产品变体
client.stores.products.variants.create(store_id='', product_id='', data={})
client.stores.products.variants.all(store_id='', product_id='', get_all=False)
client.stores.products.variants.get(store_id='', product_id='', variant_id='')
client.stores.products.variants.update(store_id='', product_id='', variant_id='', data={})
client.stores.products.variants.create_or_update(store_id='', product_id='', variant_id='', data={})
client.stores.products.variants.delete(store_id='', product_id='', variant_id='')
商店
client.stores.create(data={})
client.stores.all(get_all=False)
client.stores.get(store_id='')
client.stores.update(store_id='', data={})
client.stores.delete(store_id='')
购物车
client.stores.carts.create(store_id='', data={})
client.stores.carts.all(store_id='', get_all=False)
client.stores.carts.get(store_id='', cart_id='')
client.stores.carts.update(store_id='', cart_id='', data={})
client.stores.carts.delete(store_id='', cart_id='')
购物车系列
client.stores.carts.lines.create(store_id='', cart_id='', data={})
client.stores.carts.lines.all(store_id='', cart_id='', get_all=False)
client.stores.carts.lines.get(store_id='', cart_id='', line_id='')
client.stores.carts.lines.update(store_id='', cart_id='', line_id='', data={})
client.stores.carts.lines.delete(store_id='', cart_id='', line_id='')
商店顾客
client.stores.customers.create(store_id='', data={})
client.stores.customers.all(store_id='', get_all=False)
client.stores.customers.get(store_id='', customer_id='')
client.stores.customers.update(store_id='', customer_id='', data={})
client.stores.customers.create_or_update(store_id='', customer_id='', data={})
client.stores.customers.delete(store_id='', customer_id='')
商店订单
client.stores.orders.create(store_id='', data={})
client.stores.orders.all(store_id='', get_all=False)
client.stores.orders.get(store_id='', order_id='')
client.stores.orders.update(store_id='', order_id='', data={})
client.stores.orders.delete(store_id='', order_id='')
商店订单行
client.stores.orders.lines.create(store_id='', order_id='', data={})
client.stores.orders.lines.all(store_id='', order_id='', get_all=False)
client.stores.orders.lines.get(store_id='', order_id='', line_id='')
client.stores.orders.lines.update(store_id='', order_id='', line_id='', data={})
client.stores.orders.lines.delete(store_id='', order_id='', line_id='')
存储产品
client.stores.products.create(store_id='', data={})
client.stores.products.all(store_id='', get_all=False)
client.stores.products.get(store_id='', product_id='')
client.stores.products.update(store_id='', product_id='')
client.stores.products.delete(store_id='', product_id='')
存储产品图像
client.stores.products.images.create(store_id='', product_id='', data={})
client.stores.products.images.all(store_id='', product_id='', get_all=False)
client.stores.products.images.get(store_id='', product_id='', image_id='')
client.stores.products.images.update(store_id='', product_id='', image_id='', data={})
client.stores.products.images.delete(store_id='', product_id='', image_id='')
存储产品变体
client.stores.products.variants.create(store_id='', product_id='', data={})
client.stores.products.variants.all(store_id='', product_id='', get_all=False)
client.stores.products.variants.get(store_id='', product_id='', variant_id='')
client.stores.products.variants.update(store_id='', product_id='', variant_id='', data={})
client.stores.products.variants.create_or_update(store_id='', product_id='', variant_id='', data={})
client.stores.products.variants.delete(store_id='', product_id='', variant_id='')
文件管理器
文件
client.files.create(data={})
client.files.all(get_all=False)
client.files.get(file_id='')
client.files.update(file_id='', data={})
client.files.delete(file_id='')
文件夹
client.folders.create(data={})
client.folders.all(get_all=False)
client.folders.get(folder_id='')
client.folders.update(folder_id='', data={})
client.folders.delete(folder_id='')
文件
client.files.create(data={}) client.files.all(get_all=False) client.files.get(file_id='') client.files.update(file_id='', data={}) client.files.delete(file_id='')
文件夹
client.folders.create(data={}) client.folders.all(get_all=False) client.folders.get(folder_id='') client.folders.update(folder_id='', data={}) client.folders.delete(folder_id='')
列表
列表
client.lists.create(data={})
client.lists.update_members(list_id='', data={})
client.lists.all(get_all=False)
client.lists.get(list_id='')
client.lists.update(list_id='', data={})
client.lists.delete(list_id='')
列出虐待报告
client.lists.abuse_reports.all(list_id='', get_all=False)
client.lists.abuse_reports.get(list_id='', report_id='')
列出活动
client.lists.activity.all(list_id='')
列出客户
client.lists.clients.all(list_id='')
列表增长历史
client.lists.growth_history.all(list_id='', get_all=False)
client.lists.growth_history.get(list_id='', month='')
列出兴趣类别
client.lists.interest_categories.create(list_id='', data={})
client.lists.interest_categories.all(list_id='', get_all=False)
client.lists.interest_categories.get(list_id='', category_id='')
client.lists.interest_categories.update(list_id='', category_id='', data={})
client.lists.interest_categories.delete(list_id='', category_id='')
列出兴趣类别
client.lists.interest_categories.interests.create(list_id='', category_id='', data={})
client.lists.interest_categories.interests.all(list_id='', category_id='', get_all=False)
client.lists.interest_categories.interests.get(list_id='', category_id='', interest_id='')
client.lists.interest_categories.interests.update(list_id='', category_id='', interest_id='', data={})
client.lists.interest_categories.interests.delete(list_id='', category_id='', interest_id='')
列出成员
client.lists.members.create(list_id='', data={})
client.lists.members.all(list_id='', get_all=False)
client.lists.members.get(list_id='', subscriber_hash='')
client.lists.members.update(list_id='', subscriber_hash='', data={})
client.lists.members.create_or_update(list_id='', subscriber_hash='', data={})
client.lists.members.delete(list_id='', subscriber_hash='')
client.lists.members.delete_permanent(list_id='', subscriber_hash='')
列出成员活动
client.lists.members.activity.all(list_id='', subscriber_hash='')
列出成员目标
client.lists.members.goals.all(list_id='', subscriber_hash='')
列出成员注释
client.lists.members.notes.create(list_id='', subscriber_hash='', data={}) client.lists.members.notes.all(list_id='', subscriber_hash='', get_all=False) client.lists.members.notes.get(list_id='', subscriber_hash='', note_id='') client.lists.members.notes.update(list_id='', subscriber_hash='', note_id='', data={}) client.lists.members.notes.delete(list_id='', subscriber_hash='', note_id='')
列出合并字段
client.lists.merge_fields.create(list_id='', data={})
client.lists.merge_fields.all(list_id='', get_all=False)
client.lists.merge_fields.get(list_id='', merge_id='')
client.lists.merge_fields.update(list_id='', merge_id='', data={})
client.lists.merge_fields.delete(list_id='', merge_id='')
列出段
client.lists.segments.create(list_id='', data={}) client.lists.segments.all(list_id='', get_all=False) client.lists.segments.get(list_id='', segment_id='') client.lists.segments.update(list_id='', segment_id='', data={}) client.lists.segments.update_members(list_id='', segment_id='', data={}) client.lists.segments.delete(list_id='', segment_id='')
列出部门成员
client.lists.segments.members.create(list_id='', segment_id='', data={})
client.lists.segments.members.all(list_id='', segment_id='', get_all=False)
client.lists.segments.members.delete(list_id='', segment_id='', subscriber_hash='')
列出注册表格
client.lists.signup_forms.create(list_id='', data={})
client.lists.signup_forms.all(list_id='')
列出网络挂钩
client.lists.webhooks.create(list_id='', data={})
client.lists.webhooks.all(list_id='')
client.lists.webhooks.get(list_id='', webhook_id='')
client.lists.webhooks.update(list_id='', webhook_id='', data={})
client.lists.webhooks.delete(list_id='', webhook_id='')
报告
报告
client.reports.all(get_all=False) client.reports.get(campaign_id='')
运动虐待报告
client.reports.abuse_reports.all(campaign_id='')
client.reports.abuse_reports.get(campaign_id='', report_id='')
活动建议
client.reports.advice.all(campaign_id='')
单击详细信息报告
client.reports.click_details.all(campaign_id='', get_all=False)
client.reports.click_details.get(campaign_id='', link_id='')
单击“详细信息”报告成员
client.reports.click_details.members.all(campaign_id='', link_id='', get_all=False)
client.reports.click_details.members.get(campaign_id='', link_id='', subscriber_hash='')
域性能报告
client.reports.domain_performance.all(campaign_id='')
eepurl报告
client.reports.eepurl.all(camnpaign_id='')
电子邮件活动报告
client.reports.email_activity.all(campaign_id='', get_all=False)
client.reports.email_activity.get(campaign_id='', subscriber_hash='')
位置报告
client.reports.locations.all(campaign_id='', get_all=False)
发送到报告
client.reports.sent_to.all(campaign_id='', get_all=False)
client.reports.sent_to.get(campaign_id='', subscriber_hash='')
子报告
client.reports.subreports.all(campaign_id='')
取消订阅
client.reports.unsubscribes.all(campaign_id='', get_all=False)
client.reports.unsubscribes.get(campaign_id='', subscriber_hash='')
搜索
活动
client.search_campaigns.get()
成员
client.search_members.get()
模板
文件夹
client.template_folders.create(data={}) client.template_folders.all(get_all=False) client.template_folders.get(folder_id='') client.template_folders.update(folder_id='', data={}) client.template_folders.delete(folder_id='')
模板
client.templates.create(data={}) client.templates.all(get_all=False) client.templates.get(template_id='') client.templates.update(template_id='', data={}) client.templates.delete(template_id='')
默认内容
client.templates.default_content.all(template_id='')
记录
MailChimp客户端将请求/响应详细信息记录到 mailcimp3.client日志名称空间。考虑下面的片段 开始记录:
importloggingfh=logging.FileHandler('/path/to/some/log.log')logger=logging.getLogger('mailchimp3.client')logger.addHandler(fh)# use the client normallyclient.lists.all(**{'fields':'lists.date_created'})
请求/响应详细信息将附加到/path/to/some/log.log:
GET Request: https://us15.api.mailchimp.com/3.0/lists?fields=lists.date_created GET Response: 200 {"lists":[{"date_created":"2017-05-10T13:53:05+00:00"},{"date_created":"2017-08-22T20:27:56+00:00"},{"date_created":"2017-05-12T21:22:15+00:00"},{"date_created":"2017-04-27T17:42:04+00:00"},{"date_created":"2017-05-10T14:14:49+00:00"},{"date_created":"2017-05-10T13:52:37+00:00"},{"date_created":"2017-05-10T13:51:40+00:00"}]}
检查docs是否 有关python日志记录包的更多详细信息。
支持
如果您有问题,请让我们知道或提交拉取请求。
许可证
这个项目是根据麻省理工学院的许可证授权的。