SMS 文档
在 SMSmobileAPI,我们努力使我们的 API 尽可能与任何架构或平台兼容。
无论您使用 REST、SOAP、cURL,还是 Python、JavaScript、PHP 等各种编程语言,我们的 API 都旨在与您的项目无缝集成。
我们还拥有适用于电子商务解决方案和软件的可立即使用的插件。
点击此处了解详情.
发送短信
此端点允许您从手机发送短信。端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的唯一 API 密钥。 |
| recipients | 必需的 收件人的电话号码。 |
| message | 必需的 要发送的消息(无 160 个字符的限制)。 |
| port |
定义用于发送短信的SIM卡端口: 1, 2或者留空。 如果留空,短信将自动通过可用的 SIM 卡端口发送。 此参数从 Android 版本开始可用 4.1.15.0 当应用程序处于以下状态时,该功能有效: 前景 (第一方案)。 |
| shorturl | 1 = 将 URL 转换为短链接 0 或空值 = 不进行转换 |
| sIdentifiant | 选择要发送短信的已连接手机。留空则默认使用第一个可用的设备。需要应用版本 3.0.35.3 或更高版本。 |
| sendwa | 1 = 通过 WhatsApp 发送。 |
| sendsms | 1 = 通过短信发送(如果为空则为默认值)。设置为 0 可阻止短信发送。 |
| encrypt_message | 是的 接收者需要密钥才能解密。 了解更多 |
| schedule_timestamp | UNIX 时间戳(GMT 0),即短信发送的时间戳。 |
例子:
GET https://api.smsmobileapi.com/sendsms?apikey=YOUR_API_KEY&recipients=+1234567890&message=HelloWorld
重新发送未发送的短信
此 API 端点用于重新发送未发送的短信(仅当消息状态为错误时)。
端点:
范围:
| 范围 | 描述 |
|---|---|
| guid | 必需的 要重新发送的消息的 GUID。 |
例子:
获取 https://api.smsmobileapi.com/resend/?apikey=YOUR_API_KEY&guid=GUID_OF_THE_MESSAGE
从 API 发送的短信日志
此 API 端点用于检索通过 API 发送的 SMS 消息的日志。
端点:
范围:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| guid_message | 按邮件的唯一标识符筛选。 |
| before | 检索在此时间戳或 GUID 之前发送的消息。 |
| error_api | 1 = 列出包含 API 请求错误的短信。 |
| error_mobile | 1 = 列出存在移动处理错误的短信。 |
| keyword | 按收件人号码或消息内容筛选。 |
例子:
获取 https://api.smsmobileapi.com/log/sent/sms?apikey=YOUR_API_KEY
列出手机发送的短信
此 API 端点用于列出从您的移动设备发送并同步到您的 SMSMobileAPI 帐户的短信。
重要的: 此功能从 Android 版本开始可用 4.1.20.
重要的: 此功能是 默认情况下未启用 在安卓应用中。
隐私: 所有同步信息均已匿名化、保密,并以安全方式处理。
历史记录限制: 此 API 始终返回上一次的数据。 7天 仅有的。
笔记: 如果您使用标准 API 端点发送短信 https://api.smsmobileapi.com/sendsms/这些短信也可能出现在此列表中,因为它们实际上是从您的移动设备发送的。
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| date | 可选。精确日期筛选器 YYYY-MM-DD 格式。 |
| date_from | 可选。周期开始日期 YYYY-MM-DD 格式。 |
| date_to | 可选。期间结束日期 YYYY-MM-DD 格式。 |
| period | 可选。预定义时间段筛选器。允许的值: today, yesterday, last_24h, last_3days, last_7days. |
| number | 可选。按收件人电话号码筛选。 |
| sIdentifiant | 可选。按移动设备标识符筛选。 |
| message | 可选。按短信内容筛选。 |
| search | 可选。全局搜索 sIdentifiant, number, message, mobile_date_formatted, 和 synchro_time. |
| sort_by | 可选。排序字段。允许的值: sIdentifiant, number, message, mobile_date_ms, mobile_date_formatted, synchro_time. |
| sort_order | (可选)排序方式: ASC 或者 DESC. |
| limit | 可选。返回的最大行数。允许的最大值: 200. |
返回的字段:
| 场地 | 描述 |
|---|---|
| sIdentifiant | 与已发送短信关联的手机标识符。 |
| number | 收件人电话号码。 |
| message | 短信内容。 |
| mobile_date_ms | 原始短信时间戳(毫秒)。 |
| mobile_date_formatted | 从移动设备接收到的格式化日期。 |
| synchro_time | 短信同步到 SMSMobileAPI 的日期和时间。 |
例子:
GET https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY
使用过滤器的示例:
GET https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY&date=2026-03-13&number=32470000000&sort_by=synchro_time&sort_order=DESC
预设周期示例:
GET https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY&period=last_7days&limit=200
短信已接收
端点:
范围:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您拥有或将收到的 API 密钥。 |
| sIdentifiantPhone | 隔离与已接收短信关联的手机。 |
| after_timestamp_unix | 列出 UNIX 时间戳之后收到的短信。 |
| onlyunread | “yes” = 仅列出未标记为已读的短信(API 状态)。 |
例子:
获取 https://api.smsmobileapi.com/getsms/?apikey=YOUR_API_KEY
将收到的短信标记为已读
此 API 端点用于将收到的短信标记为已读。 仅限 API 状态.
这不会改变智能手机上的已读状态。
端点:
范围:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您拥有或将收到的 API 密钥。 |
| guid_message | 必需的 要标记为已读的消息的 GUID。 |
例子:
获取 https://api.smsmobileapi.com/getsms/set-read/?apikey=YOUR_APIKEY&guid_message=GUID_MESSAGE
更新短信别名
此 API 端点用于使用 GUID 更新接收到的短信的别名。
笔记: 这 alias 参数可以为空。在这种情况下,别名将被清除。
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| guid | 必需的 要更新的已接收短信的 GUID。 |
| alias | 必需的 要分配给此短信的别名。此值可以为空以清除当前别名。 |
例子:
GET https://api.smsmobileapi.com/getsms/update/?apikey=YOUR_API_KEY&guid=GUID_OF_THE_MESSAGE&alias=JohnDoe
清除别名的示例:
GET https://api.smsmobileapi.com/getsms/update/?apikey=YOUR_API_KEY&guid=GUID_OF_THE_MESSAGE&alias=
删除短信
此 API 端点用于从 SMS Mobile API 的服务器日志中删除短信。
端点:
范围:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您拥有的 API 密钥。 |
| guid_message | 要删除的消息的唯一 ID。 |
| date_start | 如果单独使用,则会删除指定日期的所有消息。 |
| date_start and date_end | 合并删除指定时间段内的消息。 |
例子:
获取 https://api.smsmobileapi.com/deletesms/?apikey=YOUR_API_KEY
注意:已删除的短信仅指存储在服务器日志中的短信。设备上的短信不会被删除。
列出短信对话
此 API 端点用于列出与您的帐户关联的短信对话。
每个对话都按电话号码分组,并包含相关的收发短信。
笔记: 对话的起点由以下因素决定: origineConversation 范围:
- received首先从接收到的短信中检测对话。 logsmsreceive
- sent首先从已发送的短信中检测到对话。 logsmssent
笔记: 如果 numero 如果未提供,API 仅返回最新对话。默认情况下,最后 20 对话得到回复。
笔记: 对于外发短信,如果 timearea_of_message 可用(例如: UTC+02),显示的日期将使用此值自动转换。转换后的日期也用于排序。
笔记: 如果 resume=1仅返回每个对话的最新消息。使用 resume_line_how 确定应包含多少条最新消息。
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| origineConversation | 必需的 定义对话列表的起始位置。允许的值: received 或者 sent. |
| numero | 选修的 筛选结果,仅显示一个特定的电话号码。 |
| date_from | 选修的 对话和消息的开始日期筛选器。接受的格式: YYYY-MM-DD 或者完整的日期时间值。 |
| date_to | 选修的 对话和消息的结束日期筛选器。接受的格式: YYYY-MM-DD 或者完整的日期时间值。 |
| sort | 选修的 对话排序。允许的值: DESC 或者 ASC。 默认: DESC. |
| limit | 选修的 返回对话的最大次数 numero 未提供。默认值: 20. |
| resume | 选修的 如果设置为 1仅返回每次对话的最新消息。 |
| resume_line_how | 选修的 每个对话中要返回的最新消息数量 resume=1。 默认: 1. |
行为详情:
- 读取收到的短信 logsmsreceive.
- 外发短信从 logsmssent.
- 收到的消息总是返回 direction = "incoming".
- 外发邮件总是返回 direction = "outgoing".
- 联系人别名取自 logsmsreceive.alias 如有空位。
- 对于收到的短信,移动 SID 来自 sIdentifiant_pour_read.
- 对于外发短信,移动 SID 来自 send_from_mobile_sIdentifiant.
- 对于外发短信,显示的日期会进行调整。 timearea_of_message 如果此字段不为空。
示例 1 - 列出已接收短信中的最新对话:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&originConversation=received
示例 2 - 列出已发送短信中的最新对话:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&originConversation=sent
示例 3 - 筛选特定电话号码:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=received&numero=32470000001
示例 4 - 按日期范围筛选:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=received&date_from=2026-03-01&date_to=2026-03-31
示例 5 - 恢复模式,显示每个对话的最后 3 条消息:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=sent&resume=1&resume_line_how=3
成功响应示例:
{ "success": true, "origineConversation": "received", "resume": 0, "resume_line_how": null, "conversations": [ { "phone_number": "+10470000001", "contact_alias": "John Doe", "messages": [ { "direction": "incoming", "message_id": "msg_1001", "date": "2026-03-13 08:45:12", "timestamp_utc": "2026-03-13T08:45:12Z", "message": "您好,我需要更多信息。", "status": "received", "mobile_sid": "device_sid_1" }, { "direction": "outgoing", "message_id": "msg_1002", "date": "2026-03-13 10:46:03", "timestamp_utc": "2026-03-13T08:46:03Z", "message": "当然,您想知道什么?", "status": "已发送", "mobile_sid": "device_sid_2" } ] } ] }
响应字段:
| 场地 | 描述 |
|---|---|
| success | 指示请求是否成功。 |
| origineConversation | 用于构建对话列表的初始模式。 |
| resume | 指示是否启用恢复模式。 |
| resume_line_how | 启用恢复模式后,每次对话返回的最新行数。 |
| conversations | 一系列对话。 |
| phone_number | 用于识别通话的电话号码。 |
| contact_alias | 如有别名,则将其与电话号码关联。 |
| messages | 对话中的短信数组。 |
| direction | incoming 对于收到的短信, outgoing 已发送短信。 |
| message_id | 消息的唯一标识符。 |
| date | 消息显示日期。对于外发短信,可以使用以下方法调整此值: timearea_of_message. |
| timestamp_utc | 消息的UTC时间戳。 |
| message | 邮件内容。 |
| status | received 对于收到的短信, sent 用于发送短信。 |
| mobile_sid | 接收或发送消息的移动设备的 SID。 |
错误示例:
{ "success": false, "error": "缺少必需参数:apikey" }
笔记:
- 如果 numero 如果提供了 API,则 API 只会返回与此电话号码关联的对话。
- 如果 numero 如果未提供,API 将根据所选的源模式返回最新的对话。
- 每个电话号码的收发信息都会合并到一个时间线中。
- 外发邮件排序时会考虑调整后的本地日期 timearea_of_message 有货。
- 恢复模式适用于仪表盘、小部件、预览和对话摘要。
网关 – 列出已连接的移动设备。
列出连接到您的设备的手机 短信网关.
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| sid | 按精确 SID 筛选(sIdentifiant_pour_check)。 |
| search | 按字段(sid、日期、电池、版本、标签……)搜索。 |
例子:
GET https://api.smsmobileapi.com/gateway/mobile/list/?apikey=YOUR_API_KEY
网关 – 更新移动标签
更新已连接移动设备的标签(nom_reference)。
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| sid | 必需的 设备 SID(sIdentifiant_pour_check)。 |
| label | 新标签 |
| phone_number | 新电话号码 |
例子:
GET https://api.smsmobileapi.com/gateway/mobile/update/?apikey=YOUR_API_KEY&sid=SID&label=OfficePhone
重要的: 标签为必填项,但可以为空。 (标签=)。
网关 – 删除已连接的移动设备
从网关中移除已连接的移动设备(删除此 SID 的所有历史记录行)。
端点:
参数:
| 范围 | 描述 |
|---|---|
| apikey | 必需的 您的 API 密钥。 |
| sid | 必需的 设备 SID(sIdentifiant_pour_check)。 |
例子:
GET https://api.smsmobileapi.com/gateway/mobile/delete/?apikey=YOUR_API_KEY&sid=SID
Webhook – 短信已接收
此 webhook 系统每次收到短信时都会向配置的 URL 发送 POST 请求。系统通过将短信详细信息发送到指定的 webhook URL 来确保实时更新。
如何在仪表板中配置 Webhook
按照以下步骤在仪表板中设置您的 webhook URL:
- 登录您的账户 SMS 移动 API 仪表板.
- 导航至 Webhook 设置 部分。
- 输入你的 webhook URL(例如,
https://example.com/webhook-endpoint). - 点击 保存 Webhook 按钮。
- 保存后,系统将开始向配置的 URL 发送短信详细信息。
Webhook 负载
收到短信时,系统会将以下 JSON 负载发送到您的 webhook URL:
{ "date": "2025-01-20", "hour": "10:15:00", "time_received": "2025-01-20 10:14:50", "message": "你好,这是个测试。", "number": "+123456789", "guid": "abcde12345" }
有效载荷字段:
Webhook 端点示例
您的服务器应已准备好处理传入的 POST 请求。以下是用于处理 webhook 负载的示例 PHP 脚本:
测试 Webhook
要测试你的 webhook 配置,请使用以下工具:
故障排除
- 确保 webhook URL 正确且可公开访问。
- 验证您的服务器是否在成功请求时返回 HTTP 200 状态代码。
- 检查您的服务器日志,查找处理有效负载时出现的任何错误。
增强型短信
即将推出验证
SMSMobile API 支持两种身份验证方法:使用简单的 API 密钥或带有客户端 ID 和客户端密钥的 OAuth2 协议。
1. API 密钥认证
此方法需要一个 API 密钥,该密钥可以作为参数包含在 GET 或 POST 请求中。
2. OAuth2 身份验证
OAuth2 提供了一种更安全的身份验证方法。
使用客户端 ID 和客户端密钥获取访问令牌,然后将其包含在内 授权 標軸。
client_id 和 client_secret 在您的仪表板中可用。
立即下载移动应用程序 或者
访问您的仪表板.
获取访问令牌
curl -X POST https://api.smsmobileapi.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
使用访问令牌:
curl -X POST https://api.smsmobileapi.com/sendsms \
-H "授权:持有者 YOUR_ACCESS_TOKEN" \
-H“内容类型:application/x-www-form-urlencoded” \
-d“收件人=+1234567890”\
-d“消息=你好”
您应该使用哪种方法?
- 使用 API 密钥认证 实现快速、直接的集成。
- 使用 OAuth2 身份验证 为了增强安全性和可扩展性。
发送短信
WSDL 网址
参数:
- message: 要发送的消息。
- apikey: 您拥有或将收到的 API 密钥。
例子
require_once "lib/nusoap.php";
$client = new nusoap_client("https://api.smsmobileapi.com/sendsms/wsdl/sendsms.wsdl", true);
$error = $client->getError();
$result = $client->call("sendSms", array("recipients" =>$_GET['recipients'],"message" =>$_GET['message'],"apikey" =>$_GET['apikey']));
print_r($result);
发送短信和 WhatsApp
基本 cURL 命令
curl -X POST https://api.smsmobileapi.com/sendsms/ \
-d "recipients=PHONE_NUMBER" \
-d "message=YOUR_MESSAGE" \
-d "apikey=YOUR_API_KEY"
-d "sendwa=1"
-d "sendsms=1"
发送短信和 WhatsApp
使用我们的官方 Python 模块: https://smsmobileapi.com/python/
import requests
url = "https://api.smsmobileapi.com/sendsms/"
payload = {"recipients":"PHONE_NUMBER","message":"YOUR_MESSAGE","apikey":"YOUR_API_KEY"}
response = requests.post(url, data=payload)
print(response.text)
SMS 移动 API - PHP SDK (Composer)
Composer 需要 smsmobileapi/sdk
GitHub: https://github.com/SmsMobileApi/smsmobileapi-php/tree/main
发送短信和 WhatsApp
const url = "https://api.smsmobileapi.com/sendsms/";
const data = {recipients:"PHONE_NUMBER", message:"YOUR_MESSAGE", apikey:"YOUR_API_KEY"};
fetch(url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(data)})
.then(r=>r.text()).then(console.log);
发送短信和 WhatsApp
const axios = require("axios");
axios.post("https://api.smsmobileapi.com/sendsms/", {recipients:"PHONE_NUMBER", message:"YOUR_MESSAGE", apikey:"YOUR_API_KEY"})
.then(r=>console.log(r.data));
发送短信和 WhatsApp
require "net/http"
require "uri"
uri = URI.parse("https://api.smsmobileapi.com/sendsms/")
req = Net::HTTP::Post.new(uri)
req.set_form_data({"recipients"=>"PHONE_NUMBER","message"=>"YOUR_MESSAGE","apikey"=>"YOUR_API_KEY"})
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true){|http| http.request(req)}
puts res.body

此问题是由在应用程序未主动启动时尝试在后台运行的进程引起的。但是,由于 Android 的电池优化措施(不同版本的措施有所不同),此后台进程可能无法正确启动。Android 的电池优化旨在限制应用程序的后台活动以节省电池寿命,这可能会无意中影响需要后台进程才能正常运行的应用程序。
为了解决这个问题,用户可以手动配置他们的 Android 设置,以允许 SmsMobileApi 不受限制地使用资源。
这涉及调整特定应用的电池优化设置,本质上是指示 Android 允许 SmsMobileApi 在后台运行并根据需要使用资源。这样,即使应用程序不是前台的活动应用程序,它也应该能够自动发送和接收短信。此调整可确保必要的后台进程可以不间断运行,从而绕过可能阻止其正常执行的电池优化功能。


