网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

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密钥

  1. 在以下网址登录或创建账户maton.ai
  2. 前往maton.ai/settings
  3. 复制您的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连接或请求无效
401Maton API密钥无效或缺失,或OAuth令牌已过期
403执行请求的操作权限不足
404资源未找到
409冲突(例如,重复的电子邮件地址)
429请求频率受限
4xx/5xx来自Constant Contact API的透传错误

错误响应格式

{
  "error_key": "unauthorized",
  "error_message": "Unauthorized"
}

故障排除:API密钥问题

  1. 请检查MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证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

故障排除:无效的应用名称

  1. 确保您的URL路径以constant-contact开头。例如:
  • 正确:https://gateway.maton.ai/constant-contact/v3/contacts
  • 错误:https://gateway.maton.ai/v3/contacts

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第290289名访客 今日有236篇新文章/评论