跳转到正文
OmniChannels.ai

API 与 SMPP

如何通过 API 为我的应用添加短信发送功能?

更新于

简短回答

要为应用接入短信发送,需在后端使用访问令牌调用服务商的短信 API,传入国际格式的收件人号码、已获批的 Sender ID 和短信内容。保存返回的消息 ID,通过 Webhook 接收送达状态,并在上线前处理好错误、重试和限流。

接入步骤

  1. 获取测试凭据,并登记要发送的测试号码。
  2. 将 API 令牌保存在服务器的密钥管理器或环境变量中,切勿放入手机 App 或浏览器代码。
  3. 号码以 E.164 格式存储,并转换成 API 要求的格式。
  4. 选择编码:GSM-7 文本,或用于阿拉伯语、emoji 及其他文字的 Unicode。
  5. 发送短信,并将返回的消息 ID 与您自己的记录一起保存。
  6. 配置 Webhook 以接收送达状态。
  7. 对 429 和 5xx 响应加入带退避的重试,并为每个有要求的国家注册 Sender ID。

需要避免的错误

  • 在客户端 App 中直接调用 API,这会让任何人都能获取令牌。
  • API 只接受纯数字时,却传入带加号、空格或本国前导零的号码。
  • 让一个弯引号或 emoji 把整条短信切换成 Unicode,从而减少每段可容纳的字符数。
  • 超时后盲目重试。如果 API 没有幂等键,请先记录每次发送,重发前先核对其状态。
  • 忽略 429 响应,而不是等待 Retry-After 头指定的时间。

示例:单条短信请求

在 OmniChannels.ai 上,您通过 POST https://api.broadnet.me/sms/sendSms、Authorization: Bearer 头和 JSON 请求体发送一条短信。调用成功会返回 200,正文为纯文本的消息 ID。测试权限在简短申请后开通,仅可发送到您自己已验证的号码;不提供即时自助注册。

字段示例说明
senderIdOmniDemo您已获批的 Sender ID
destinationNumber447700900123国家区号加号码,仅数字
messageYour code is 482913短信内容
messageTypeTEXTGSM-7 用 TEXT,阿拉伯语和 emoji 用 UNICODE

官方来源