Constant Contact
2026-03-27
新闻来源:网淘吧
围观:14
电脑广告
手机广告
Constant Contact
通过托管的OAuth身份验证访问Constant Contact V3 API。管理联系人、电子邮件营销活动、联系人列表、细分市场和营销分析。
快速入门
# List contacts
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/constant-contact/v3/contacts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
基础URL
https://gateway.maton.ai/constant-contact/v3/{resource}
网关将请求代理至api.cc.email/v3并自动注入您的OAuth令牌。
身份验证
所有请求都要求在Authorization头部中包含Maton API密钥:
Authorization: Bearer $MATON_API_KEY
环境变量:将您的API密钥设置为MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
获取您的API密钥
- 在以下网址登录或创建账户maton.ai
- 前往maton.ai/settings
- 复制您的API密钥
连接管理
在以下地址管理您的Constant Contact OAuth连接https://ctrl.maton.ai.
列出连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=constant-contact&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
创建连接
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'constant-contact'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
获取连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
响应:
{
"connection": {
"connection_id": "4314bd0f-fd56-40ab-8c65-2676dd2c23c4",
"status": "ACTIVE",
"creation_time": "2026-02-07T07:41:05.859244Z",
"last_updated_time": "2026-02-07T07:41:32.658230Z",
"url": "https://connect.maton.ai/?session_token=...",
"app": "constant-contact",
"metadata": {}
}
}
在浏览器中打开返回的网址以完成 OAuth 授权。
删除连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
指定连接
如果您有多个 Constant Contact 连接,请使用Maton-Connection标头指定要使用哪一个:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/constant-contact/v3/contacts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '4314bd0f-fd56-40ab-8c65-2676dd2c23c4')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果省略,网关将使用默认(最早创建的)活动连接。
API 参考
账户
获取账户摘要
GET /constant-contact/v3/account/summary
获取账户电子邮件
GET /constant-contact/v3/account/emails
获取用户权限
GET /constant-contact/v3/account/user/privileges
联系人
列出联系人
GET /constant-contact/v3/contacts
查询参数:
状态- 按状态筛选:全部,活跃,已删除,未设置,待确认,临时保留,已退订电子邮件- 按电子邮件地址筛选列表- 按列表ID筛选细分ID- 按细分ID筛选标签- 按标签ID筛选更新后- ISO-8601日期筛选包含- 包含子资源:自定义字段,列出成员资格,标记,备注限制- 每页结果数(默认50,最大500)
获取联系人
GET /constant-contact/v3/contacts/{contact_id}
创建联系人
POST /constant-contact/v3/contacts
Content-Type: application/json
{
"email_address": {
"address": "john@example.com",
"permission_to_send": "implicit"
},
"first_name": "John",
"last_name": "Doe",
"job_title": "Developer",
"company_name": "Acme Inc",
"list_memberships": ["list-uuid-here"]
}
更新联系人
PUT /constant-contact/v3/contacts/{contact_id}
Content-Type: application/json
{
"email_address": {
"address": "john@example.com"
},
"first_name": "John",
"last_name": "Smith"
}
删除联系人
DELETE /constant-contact/v3/contacts/{contact_id}
创建或更新联系人(注册表单)
使用此端点创建新联系人或更新现有联系人,无需先检查其是否存在:
POST /constant-contact/v3/contacts/sign_up_form
Content-Type: application/json
{
"email_address": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"list_memberships": ["list-uuid-here"]
}
获取联系人数量
GET /constant-contact/v3/contacts/counts
联系人列表
列出联系人列表
GET /constant-contact/v3/contact_lists
查询参数:
包含计数- 包含每个列表的联系人数量包含成员资格计数- 包含成员资格数量限制- 每页结果数
获取联系人列表
GET /constant-contact/v3/contact_lists/{list_id}
创建联系人列表
POST /constant-contact/v3/contact_lists
Content-Type: application/json
{
"name": "Newsletter Subscribers",
"description": "Main newsletter list",
"favorite": false
}
更新联系人列表
PUT /constant-contact/v3/contact_lists/{list_id}
Content-Type: application/json
{
"name": "Updated List Name",
"description": "Updated description",
"favorite": true
}
删除联系人列表
DELETE /constant-contact/v3/contact_lists/{list_id}
标签
列出标签
GET /constant-contact/v3/contact_tags
创建标签
POST /constant-contact/v3/contact_tags
Content-Type: application/json
{
"name": "VIP Customer"
}
更新标签
PUT /constant-contact/v3/contact_tags/{tag_id}
Content-Type: application/json
{
"name": "Premium Customer"
}
删除标签
DELETE /constant-contact/v3/contact_tags/{tag_id}
自定义字段
列出自定义字段
GET /constant-contact/v3/contact_custom_fields
创建自定义字段
POST /constant-contact/v3/contact_custom_fields
Content-Type: application/json
{
"label": "Customer ID",
"type": "string"
}
删除自定义字段
DELETE /constant-contact/v3/contact_custom_fields/{custom_field_id}
邮件营销活动
列出邮件营销活动
GET /constant-contact/v3/emails
查询参数:
限制- 每页结果数(默认 50)
获取邮件营销活动
GET /constant-contact/v3/emails/{campaign_id}
创建邮件营销活动
POST /constant-contact/v3/emails
Content-Type: application/json
{
"name": "March Newsletter",
"email_campaign_activities": [
{
"format_type": 5,
"from_name": "Company Name",
"from_email": "marketing@example.com",
"reply_to_email": "reply@example.com",
"subject": "March Newsletter",
"html_content": "<html><body><h1>Hello!</h1></body></html>"
}
]
}
更新邮件营销活动状态
PUT /constant-contact/v3/emails/activities/{campaign_activity_id}
Content-Type: application/json
{
"contact_list_ids": ["list-uuid-here"],
"from_name": "Updated Name",
"subject": "Updated Subject"
}
发送测试邮件
POST /constant-contact/v3/emails/activities/{campaign_activity_id}/tests
Content-Type: application/json
{
"email_addresses": ["test@example.com"]
}
安排邮件营销活动
POST /constant-contact/v3/emails/activities/{campaign_activity_id}/schedules
Content-Type: application/json
{
"scheduled_date": "2026-03-01T10:00:00Z"
}
细分群组
列出细分群组
GET /constant-contact/v3/segments
获取细分群组
GET /constant-contact/v3/segments/{segment_id}
创建细分
POST /constant-contact/v3/segments
Content-Type: application/json
{
"name": "Engaged Subscribers",
"segment_criteria": "..."
}
删除细分
DELETE /constant-contact/v3/segments/{segment_id}
批量活动
导入联系人
POST /constant-contact/v3/activities/contacts_file_import
Content-Type: multipart/form-data
{file: contacts.csv, list_ids: ["list-uuid"]}
将联系人添加到列表
POST /constant-contact/v3/activities/add_list_memberships
Content-Type: application/json
{
"source": {
"contact_ids": ["contact-uuid-1", "contact-uuid-2"]
},
"list_ids": ["list-uuid"]
}
从列表中移除联系人
POST /constant-contact/v3/activities/remove_list_memberships
Content-Type: application/json
{
"source": {
"list_ids": ["source-list-uuid"]
},
"list_ids": ["target-list-uuid"]
}
批量删除联系人
POST /constant-contact/v3/activities/contact_delete
Content-Type: application/json
{
"contact_ids": ["contact-uuid-1", "contact-uuid-2"]
}
获取活动状态
GET /constant-contact/v3/activities/{activity_id}
列出活动
GET /constant-contact/v3/activities
报告
电子邮件营销活动摘要
GET /constant-contact/v3/reports/summary_reports/email_campaign_summaries
查询参数:
start- 开始日期(ISO-8601格式)end- 结束日期(ISO-8601格式)
获取电子邮件营销活动报告
GET /constant-contact/v3/reports/email_reports/{campaign_activity_id}
联系人活动摘要
GET /constant-contact/v3/reports/contact_reports/{contact_id}/activity_summary
分页
该API使用基于游标的分页,并包含一个limit参数:
GET /constant-contact/v3/contacts?limit=50
响应中包含分页链接:
{
"contacts": [...],
"_links": {
"next": {
"href": "/v3/contacts?cursor=abc123"
}
}
}
使用来自下一页后续页面链接:
GET /constant-contact/v3/contacts?cursor=abc123
代码示例
JavaScript
const response = await fetch(
'https://gateway.maton.ai/constant-contact/v3/contacts?limit=50',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
const data = await response.json();
Python
import os
import requests
response = requests.get(
'https://gateway.maton.ai/constant-contact/v3/contacts',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
params={'limit': 50}
)
data = response.json()
注意事项
- 资源ID使用UUID格式(36个字符,包含连字符)
- 所有日期均采用ISO-8601格式:
YYYY-MM-DDThh:mm:ss.sZ - 每个账户最多1,000个联系人列表
- 一个联系人最多可属于50个列表
- 批量操作是异步的 - 请检查活动状态以确认完成
- 电子邮件营销活动需要已验证的发件人邮箱地址
format_type: 5适用于自定义HTML电子邮件- 重要提示:使用curl命令时,若URL包含方括号,请使用
curl -g以禁用通配符解析 - 重要提示:将curl输出通过管道传递给
jq或其他命令时,环境变量如$MATON_API_KEY在某些shell环境中可能无法正确展开
错误处理
| 状态码 | 含义 |
|---|---|
| 400 | 缺少Constant Contact连接或请求无效 |
| 401 | Maton API密钥无效或缺失,或OAuth令牌已过期 |
| 403 | 执行请求的操作权限不足 |
| 404 | 资源未找到 |
| 409 | 冲突(例如,重复的电子邮件地址) |
| 429 | 请求频率受限 |
| 4xx/5xx | 来自Constant Contact API的透传错误 |
错误响应格式
{
"error_key": "unauthorized",
"error_message": "Unauthorized"
}
故障排除:API密钥问题
- 请检查
MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
- 通过列出连接来验证API密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
故障排除:无效的应用名称
- 确保您的URL路径以
constant-contact开头。例如:
- 正确:
https://gateway.maton.ai/constant-contact/v3/contacts - 错误:
https://gateway.maton.ai/v3/contacts
资源
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~