ClawSkills logoClawSkills

ClickSend

ClickSend API 集成,包含托管身份验证。发送 SMS、MMS 和语音消息,管理联系人和列表。 当用户想要发送文...

介绍

# ClickSend

通过托管认证访问 ClickSend API。发送短信、彩信和语音消息,管理联系人和列表,并跟踪消息投递状态。

## 快速开始

```bash # Get account info python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/clicksend/v3/account') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

## Base URL

``` https://gateway.maton.ai/clicksend/{native-api-path} ```

将 `{native-api-path}` 替换为实际的 ClickSend API 端点路径。网关将请求代理到 `rest.clicksend.com` 并自动注入您的认证信息。

## 认证

所有请求都需要在 Authorization 头中包含 Maton API 密钥:

``` Authorization: Bearer $MATON_API_KEY ```

**环境变量:** 将您的 API 密钥设置为 `MATON_API_KEY`:

```bash export MATON_API_KEY="YOUR_API_KEY" ```

### 获取 API 密钥

1. 登录或创建一个 [maton.ai](https://maton.ai) 账户 2. 前往 [maton.ai/settings](https://maton.ai/settings) 3. 复制您的 API 密钥

## 连接管理

在 `https://ctrl.maton.ai` 管理您的 ClickSend 连接。

### 列出连接

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections?app=clicksend&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 ```

### 创建连接

```bash python <<'EOF' import urllib.request, os, json data = json.dumps({'app': 'clicksend'}).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 ```

### 获取连接

```bash 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 ```

**响应:** ```json { "connection": { "connection_id": "37beee67-29f7-43b6-b0b2-5f0f7a5d6440", "status": "ACTIVE", "creation_time": "2026-02-10T10:04:12.418030Z", "last_updated_time": "2026-02-10T10:06:17.059090Z", "url": "https://connect.maton.ai/?session_token=...", "app": "clicksend", "metadata": {} } } ```

### 删除连接

```bash 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 ```

### 指定连接

如果您有多个 ClickSend 连接,请使用 `Maton-Connection` 头指定要使用的连接:

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/clicksend/v3/account') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Maton-Connection', '37beee67-29f7-43b6-b0b2-5f0f7a5d6440') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

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

## API 参考

### 响应格式

所有 ClickSend API 响应均遵循此结构:

```json { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Description of the result", "data": { ... } } ```

---

## 账户

### 获取账户

```bash GET /clicksend/v3/account ```

**响应:** ```json { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Here's your account", "data": { "user_id": 672721, "username": "[email protected]", "user_email": "[email protected]", "balance": "2.005718", "user_phone": "+18019234886", "user_first_name": "John", "user_last_name": "Doe", "country": "US", "default_country_sms": "US", "timezone": "America/Chicago", "_currency": { "currency_name_short": "USD", "currency_prefix_d": "$" } } } ```

---

## 短信 (SMS)

### 发送短信

```bash POST /clicksend/v3/sms/send Content-Type: application/json

{ "messages": [ { "to": "+15551234567", "body": "Hello from ClickSend!", "source": "api" } ] } ```

**参数:**

| 字段 | 类型 | 描述 | |-------|------|-------------| | `to` | string | 收件人电话号码 (E.164 格式) | | `body` | string | 短信内容 | | `source` | string | 源标识符 (例如 "api", "sdk") | | `from` | string | 发送方 ID (可选) | | `schedule` | int | 定时发送的 Unix 时间戳 (可选) | | `custom_string` | string | 自定义引用 (可选) |

### 获取短信价格

```bash POST /clicksend/v3/sms/price Content-Type: application/json

{ "messages": [ { "to": "+15551234567", "body": "Test message", "source": "api" } ] } ```

### 短信历史

```bash GET /clicksend/v3/sms/history ```

**查询参数:**

| 参数 | 描述 | |-----------|-------------| | `date_from` | 开始日期的 Unix 时间戳 | | `date_to` | 结束日期的 Unix 时间戳 | | `page` | 页码 (默认: 1) | | `limit` | 每页结果数 (默认: 15) |

### 接收短信

```bash GET /clicksend/v3/sms/inbound ```

### 短信回执 (投递报告)

```bash GET /clicksend/v3/sms/receipts ```

### 取消定时短信

```bash PUT /clicksend/v3/sms/{message_id}/cancel ```

### 取消所有定时短信

```bash PUT /clicksend/v3/sms/cancel-all ```

---

## 短信模板

### 列出模板

```bash GET /clicksend/v3/sms/templates ```

**响应:** ```json { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Here are your templates.", "data": { "total": 1, "per_page": 15, "current_page": 1, "data": [ { "template_id": 632497, "body": "Hello {name}, this is a test message.", "template_name": "Test Template" } ] } } ```

### 创建模板

```bash POST /clicksend/v3/sms/templates Content-Type: application/json

{ "template_name": "Welcome Message", "body": "Hello {name}, welcome to our service!" } ```

### 更新模板

```bash PUT /clicksend/v3/sms/templates/{template_id} Content-Type: application/json

{ "template_name": "Updated Template", "body": "Updated message content" } ```

### 删除模板

```bash DELETE /clicksend/v3/sms/templates/{template_id} ```

---

## 彩信 (MMS)

### 发送彩信

```bash POST /clicksend/v3/mms/send Content-Type: application/json

{ "messages": [ { "to": "+15551234567", "body": "Check out this image!", "media_file": "https://example.com/image.jpg", "source": "api" } ] } ```

### 彩信历史

```bash GET /clicksend/v3/mms/history ```

### 获取彩信价格

```bash POST /clicksend/v3/mms/price Content-Type: application/json

{ "messages": [...] } ```

### 彩信回执

```bash GET /clicksend/v3/mms/receipts ```

---

## 语音

### 发送语音消息

```bash POST /clicksend/v3/voice/send Content-Type: application/json

{ "messages": [ { "to": "+15551234567", "body": "Hello, this is a voice message.", "voice": "female", "lang": "en-us", "source": "api" } ] } ```

**语音参数:**

| 字段 | 描述 | |-------|-------------| | `to` | 收件人电话号码 | | `body` | 要朗读的文本 | | `voice` | 语音性别:`male` 或 `female` | | `lang` | 语言代码 (例如 `en-us`, `en-gb`, `de-de`) | | `schedule` | 定时呼叫的 Unix 时间戳 | | `require_input` | 要求按键输入 (0-1) | | `machine_detection` | 检测答录机 (0-1) |

### 可用语言

```bash GET /clicksend/v3/voice/lang ```

返回支持的语言列表,包含代码和可用的性别。

### 语音历史

```bash GET /clicksend/v3/voice/history ```

**注意:** 需要在账户上启用语音访问权限。

### 获取语音价格

```bash POST /clicksend/v3/voice/price ```

### 取消语音消息

```bash PUT /clicksend/v3/voice/{message_id}/cancel ```

---

## 联系人列表

### 列出所有列表

```bash GET /clicksend/v3/lists ```

**响应:** ```json { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Here are your contact lists.", "data": { "total": 2, "data": [ { "list_id": 3555277, "list_name": "Opt-Out List", "_contacts_count": 0 }, { "list_id": 3555278, "list_name": "Example List", "_contacts_count": 10 } ] } } ```

### 获取列表

```bash GET /clicksend/v3/lists/{list_id} ```

### 创建列表

```bash POST /clicksend/v3/lists Content-Type: application/json

{ "list_name": "My New List" } ```

### 更新列表

```bash PUT /clicksend/v3/lists/{list_id} Content-Type: application/json

{ "list_name": "Updated List Name" } ```

### 删除列表

```bash DELETE /clicksend/v3/lists/{list_id} ```

### 移除重复项

```bash PUT /clicksend/v3/lists/{list_id}/remove-duplicates ```

---

## 联系人

### 列出列表中的联系人

```bash GET /clicksend/v3/lists/{list_id}/contacts ```

**查询参数:**

| 参数 | 描述 | |-----------|-------------| | `page` | 页码 | | `limit` | 每页结果数 | | `updated_after` | 筛选在时间戳之后更新的联系人 |

### 获取联系人

```bash GET /clicksend/v3/lists/{list_id}/contacts/{contact_id} ```

**响应:** ```json { "http_code": 200, "response_code": "SUCCESS", "data": { "contact_id": 1581565666, "list_id": 3555278, "phone_number": "+18019234886", "first_name": "John", "last_name": "Doe", "email": "[email protected]", "custom_1": "", "custom_2": "", "custom_3": "", "custom_4": "", "organization_name": "", "address_city": "", "address_state": "", "address_country": "US" } } ```

### 创建联系人

```bash POST /clicksend/v3/lists/{list_id}/contacts Content-Type: application/json

{ "phone_number": "+15551234567", "first_name": "John", "last_name": "Doe", "email": "[email protected]" } ```

**联系人字段:**

| 字段 | 描述 | |-------|-------------| | `phone_number` | 电话号码 (E.164 格式) | | `first_name` | 名 | | `last_name` | 姓 | | `email` | 电子邮件地址 | | `fax_number` | 传真号码 | | `organization_name` | 公司名称 | | `custom_1` - `custom_4` | 自定义字段 | | `address_line_1`, `address_line_2` | 地址 | | `address_city`, `address_state`, `address_postal_code`, `address_country` | 地址组成部分 |

### 更新联系人

```bash PUT /clicksend/v3/lists/{list_id}/contacts/{contact_id} Content-Type: application/json

{ "first_name": "Jane", "last_name": "Smith" } ```

### 删除联系人

```bash DELETE /clicksend/v3/lists/{list_id}/contacts/{contact_id} ```

### 将联系人复制到另一个列表

```bash PUT /clicksend/v3/lists/{from_list_id}/contacts/{contact_id}/copy/{to_list_id} ```

### 将联系人转移到另一个列表

```bash PUT /clicksend/v3/lists/{from_list_id}/contacts/{contact_id}/transfer/{to_list_id} ```

---

## 电子邮件地址

### 列出已验证的电子邮件地址

```bash GET /clicksend/v3/email/addresses ```

### 添加电子邮件地址

```bash POST /clicksend/v3/email/addresses Content-Type: application/json

{ "email_address": "[email protected]" } ```

### 删除电子邮件地址

```bash DELETE /clicksend/v3/email/addresses/{email_address_id} ```

---

## 实用工具端点

### 列出国家/地区

```bash GET /clicksend/v3/countries ```

返回所有支持的国家/地区列表及其代码。

---

## 分页

ClickSend 使用基于页码的分页:

```bash GET /clicksend/v3/lists?page=2&limit=50 ```

**响应包含:** ```json { "data": { "total": 100, "per_page": 50, "current_page": 2, "last_page": 2, "next_page_url": null, "prev_page_url": "...?page=1", "from": 51, "to": 100, "data": [...] } } ```

**参数:** - `page` - 页码 (默认: 1) - `limit` - 每页结果数 (默认: 15)

## 代码示例

### JavaScript

```javascript const response = await fetch( 'https://gateway.maton.ai/clicksend/v3/sms/send', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.MATON_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ messages: [ { to: '+15551234567', body: 'Hello from ClickSend!', source: 'api' } ] }) } ); const data = await response.json(); console.log(data); ```

### Python

```python import os import requests

response = requests.post( 'https://gateway.maton.ai/clicksend/v3/sms/send', headers={ 'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}', 'Content-Type': 'application/json' }, json={ 'messages': [ { 'to': '+15551234567', 'body': 'Hello from ClickSend!', 'source': 'api' } ] } ) data = response.json() print(f"Status: {data['response_code']}") ```

## 注意事项

- 电话号码必须采用 E.164 格式 (例如 `+15551234567`) - 所有时间戳均为 Unix 时间戳 (自纪元以来的秒数) - 使用 `source` 字段在分析中标识您的应用程序 - 模板支持 `{name}`、`{custom_1}` 等占位符 - 超过 160 个字符的短信将被拆分为多个段 - 语音访问需要账户级别的权限 - 重要:使用 curl 命令时,如果 URL 包含括号,请使用 `curl -g` 以禁用 glob 解析 - 重要:将 curl 输出通过管道传递给 `jq` 或其他命令时,在某些 shell 环境中,`$MATON_API_KEY` 等环境变量可能无法正确展开

## 错误处理

| 状态 | 含义 | |--------|---------| | 200 | 成功 | | 400 | 错误的请求 | | 401 | 未授权 - 凭据无效 | | 403 | 禁止访问 - 权限不足 | | 404 | 资源未找到 | | 429 | 请求频率受限 | | 500 | 内部服务器错误 |

**响应代码:** - `SUCCESS` - 操作成功完成 - `FORBIDDEN` - 对资源的访问被拒绝 - `BAD_REQUEST` - 无效的请求参数 - `INVALID_RECIPIENT` - 无效的电话号码

### 故障排除:API 密钥问题

1. 检查 `MATON_API_KEY` 环境变量是否已设置:

```bash echo $MATON_API_KEY ```

2. 通过列出连接来验证 API 密钥是否有效:

```bash 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 路径以 `clicksend` 开头。例如:

- 正确:`https://gateway.maton.ai/clicksend/v3/account` - 错误:`https://gateway.maton.ai/v3/account`

## 资源

- [ClickSend 开发者门户](https://developers.clicksend.com/) - [ClickSend REST API v3 文档](https://developers.clicksend.com/docs) - [ClickSend PHP SDK](https://github.com/ClickSend/clicksend-php) - [ClickSend 帮助中心](https://help.clicksend.com/) - [Maton 社区](https://discord.com/invite/dBfFAcefs2) - [Maton 支持](mailto:[email protected])

更多产品