网淘吧来吧,欢迎您!

Systeme.io技能使用说明

2026-03-28 新闻来源:网淘吧 围观:11
电脑广告
手机广告

Systeme.io

通过托管的 OAuth 认证访问 Systeme.io API。管理联系人、标签、课程、社区和订阅。

快速开始

# List contacts
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/systeme/api/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/systeme/{native-api-path}

{native-api-path}替换为实际的 Systeme.io API 端点路径。网关将请求代理到api.systeme.io并自动注入您的 API 密钥。

认证

所有请求都需要在 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 密钥

连接管理

https://ctrl.maton.ai管理您的 Systeme.io 连接。

列出连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=systeme&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': 'systeme'}).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": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
    "status": "ACTIVE",
    "creation_time": "2025-12-08T07:20:53.488460Z",
    "last_updated_time": "2026-01-31T20:03:32.593153Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "systeme",
    "metadata": {}
  }
}

在浏览器中打开返回的URL以完成 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

指定连接

如果您有多个 Systeme.io 连接,请使用Maton-Connection标头指定要使用的连接:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/systeme/api/contacts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

如果省略,网关将使用默认(最早创建的)活动连接。

API 参考

联系人操作

列出联系人

GET /systeme/api/contacts

查询参数:

  • limit- 每页项目数(10-100,可选)
  • startingAfter- 用于分页的最后接收项ID(可选)
  • 排序- 排序方式:升序降序(默认:降序,可选)

获取联系人

GET /systeme/api/contacts/{id}

创建联系人

POST /systeme/api/contacts
Content-Type: application/json

{
  "email": "john@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "+1234567890",
  "locale": "en",
  "fields": [
    {
      "slug": "custom_field_slug",
      "value": "custom value"
    }
  ]
}

更新联系人

PATCH /systeme/api/contacts/{id}
Content-Type: application/merge-patch+json

{
  "firstName": "Jane",
  "lastName": "Smith"
}

删除联系人

DELETE /systeme/api/contacts/{id}

标签操作

列出标签

GET /systeme/api/tags

获取标签

GET /systeme/api/tags/{id}

创建标签

POST /systeme/api/tags
Content-Type: application/json

{
  "name": "VIP Customer"
}

更新标签

PUT /systeme/api/tags/{id}
Content-Type: application/json

{
  "name": "Premium Customer"
}

删除标签

DELETE /systeme/api/tags/{id}

联系人标签操作

为联系人分配标签

POST /systeme/api/contacts/{id}/tags
Content-Type: application/json

{
  "tagId": 12345
}

从联系人移除标签

DELETE /systeme/api/contacts/{id}/tags/{tagId}

联系人字段操作

列出联系人字段

GET /systeme/api/contact_fields

创建联系人字段

POST /systeme/api/contact_fields
Content-Type: application/json

{
  "name": "Company Name",
  "slug": "company_name"
}

更新联系人字段

PATCH /systeme/api/contact_fields/{slug}
Content-Type: application/merge-patch+json

{
  "name": "Organization Name"
}

删除联系人字段

DELETE /systeme/api/contact_fields/{slug}

课程操作

列出课程

GET /systeme/api/school/courses

列出注册信息

GET /systeme/api/school/enrollments

创建注册

POST /systeme/api/school/courses/{courseId}/enrollments
Content-Type: application/json

{
  "contactId": 12345,
  "accessType": "full_access"
}

必填字段:

  • contactId- 要注册的联系人ID
  • accessType- 访问类型:full_accesspartial_accessdripping_content

注意:如果accessTypepartial_access,您还必须提供一个包含模块ID的modules数组。

删除注册

DELETE /systeme/api/school/enrollments/{id}

社区操作

列出社区

GET /systeme/api/community/communities

列出成员资格

GET /systeme/api/community/memberships

创建成员资格

POST /systeme/api/community/communities/{communityId}/memberships
Content-Type: application/json

{
  "contactId": 12345
}

删除成员资格

DELETE /systeme/api/community/memberships/{id}

订阅操作

列出订阅

GET /systeme/api/payment/subscriptions

取消订阅

POST /systeme/api/payment/subscriptions/{id}/cancel

分页

Systeme.io 使用基于游标的分页,参数如下:

GET /systeme/api/contacts?limit=50&startingAfter=12345&order=asc

参数:

  • limit- 每页项目数量(10-100)
  • startingAfter- 上一页最后一个项目的ID
  • order- 排序顺序:ascdesc(默认:desc

响应:

{
  "items": [...],
  "hasMore": true
}

还有更多,使用项目中最后一个项目的ID作为起始后以获取下一页。

代码示例

JavaScript

const response = await fetch(
  'https://gateway.maton.ai/systeme/api/contacts',
  {
    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/systeme/api/contacts',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
)
data = response.json()

创建带标签的联系人

import os
import requests

# Create contact
contact = requests.post(
    'https://gateway.maton.ai/systeme/api/contacts',
    headers={
        'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'email': 'new@example.com',
        'firstName': 'New',
        'lastName': 'Contact'
    }
).json()

# Assign tag
requests.post(
    f'https://gateway.maton.ai/systeme/api/contacts/{contact["id"]}/tags',
    headers={
        'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={'tagId': 12345}
)

备注

  • Systeme.io 使用API密钥认证(原生通过X-API-Key头传递)
  • 网关自动处理认证头的转换
  • 使用application/merge-patch+json内容类型进行PATCH请求
  • 联系人、标签、课程和注册ID为数字整数
  • 速率限制通过X-RateLimit-*头强制执行
  • Systeme.io验证电子邮件域名 - 只接受具有有效MX记录的真实电子邮件地址
  • 订阅端点 (/api/payment/subscriptions) 如果未配置支付功能,可能会返回404
  • 重要提示:使用curl命令时,当URL包含方括号时,请使用curl -g以禁用通配符解析
  • 重要提示:将curl输出通过管道传递给jq或其他命令时,某些shell环境中可能无法正确展开环境变量,例如$MATON_API_KEY 错误处理

状态码

含义400
缺少Systeme.io连接或请求格式错误401
Maton API密钥无效或缺失429
请求频率受限(请检查Retry-AfterRetry-After标题)
4xx/5xx 错误来自 Systeme.io API 的透传错误

故障排除: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 路径以systeme开头。例如:
  • 正确示例:https://gateway.maton.ai/systeme/api/contacts
  • 错误示例:https://gateway.maton.ai/api/contacts

资源

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

相关文章

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