# 短信服务 API
开始使用前,请先创建应用,申请短信发送 scope,并成功完成审批,同时完成模板创建
# 请求
POST https://apigate.glodon.com/colibri/api/security/sms
1
# 说明
- 1 分钟同 1 个号码验证码只能发 10 次,和普通短信不冲突,超过限制后面的短信报 9432;
- 1 小时同 1 个号码验证码只能发 60 次,超过 3 次会拒绝报 9433;
- 1 天同一个号码发验证码只能发 100 次,超过限制,会拒绝报 9434;
- 1 个号码普通短信的日限是 100 条
注意
发送频率限制:每天最多 10000 条短信
出现用户收不到短信情况(黑名单),需要联系运营商客服解除限制(可以联系云平台运营 wangy-y 帮助解除):
- 黑名单的形成有回复 TD、 电话投诉、 验证码无限获取都会导致黑名单
- 黑名单还有共享的, 在其他平台获取过短信, 进入黑名单, 在创蓝(广联云使用的服务商)平台也会同等
# header 参数
参数名 | 必选 | 类型 | 描述 |
---|---|---|---|
Authorization | 是 | String | Bearer app_access_token. 注:该 access_token 是应用级别 |
Content-Type | 是 | String | application/json |
# body 参数
参数名 | 必选 | 类型 | 描述 |
---|---|---|---|
mobiles | 是 | String 数组 | 短信接收手机号码列表,只支持大陆 11 位手机号 |
params | 是 | Map*<String,String*> | 模板中的参数列表,params 中的 key 值要和短信模板中的保持一致,比如参数 count 和模板中的${count}保持一致 |
templateId | 是 | String | 已创建的模板 id,每个应用只能发送属于自己的模板短信 |
variableMsg | 否 | boolean | 默认为 false,当为 false 时,如果短信中含有超链接,发送的短信需要人工审核,有一定延时 |
# 响应
HTTP 代码 | 说明 | 类型 |
---|---|---|
200 | ok | 请求成功,根据业务 code 解析实际结果 |
401 | invalid_token | 请求头里面的 accessToken 无效 |
600 | 业务异常 | 业务异常 |
# HTTP 请求示例
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"mobiles\":[\"186XXXXXXXX\"],\"params\":{\"count\":\"123\"},\"templateId\":\"XXXXXXX_zh_CN\"}");
Request request = new Request.Builder()
.url("https://apigate.glodon.com/colibri/api/security/sms")
.post(body)
.addHeader("authorization", "Bearer cn-befa8XXXXXXXXXXXXXXXXXX")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
curl -X POST \
https://apigate.glodon.com/colibri/api/security/sms \
-H 'authorization: Bearer cn-befa8XXXXXXXXXXXXXXXXXX' \
-H 'content-type: application/json' \
-d '{"mobiles":["186XXXXXXXX"],"params":{"userName":"123","projectName":"123"},"templateId":"XXXXXXX_zh_CN"}
'
1
2
3
4
5
6
2
3
4
5
6
# 成功返回结果
{
"code": 40000,
"error": "OK",
"description": "OK"
}
1
2
3
4
5
2
3
4
5
# 异常返回结果
{"code":40100,"error":"colibri.unauthorized","description":"认证失败"}
{"code":40200,"error":"colibri.oauth.scope.error","description":"没有分配权限"}
{"code":40202,"error":"colibri.invalid.template.id","description":"无效的模板ID"}
{ "error": "invalid_token", "error_description": "cn-24b92d2f-66cc-45d2-8e8b-e08916bca2d62"}
1
2
3
4
2
3
4