短信使用
签名与模板
开发者在购买短信服务包之后可进行短信签名和模板设置,只有正确配置了签名和模板并通过审核后才可以进行短信发送。
验证码/通知类签名设置
1. 短信签名要求
- 2-12个字符; 必须包含中文,不能是纯数字、纯字母、不含违禁关键词,不能有任何符号(如-.+#);
- 不用添加【 】符号,短信发送会自带【 】符号,避免重复,申请时无需添加该符号;
- 短信签名建议为用户真实应用名/网站名/公司名,应如实清晰反映内容提供者的名称或者产品,若签名/短信内容侵犯到第三方权益须获得第三方的真实授权,授权委托书等凭证上传管理中心;
- 签名内容不能含有违规、违禁关键词如中奖/抽奖/彩票/党政及宗教推广类签名不支持。
2. 短信签名个数
- 企业用户可添加5个自定义签名;
- 个人用户可添加1个自定义签名。
3. 签名审核时间
- 一般签名预计4小时内审核完成,审核通过后可使用;
- 审核时间:工作日9:00-18:00(法定节日顺延);
- 如涉及政检法等事业单位会在2个工作日内审核完成;
- 为配合三大运营商的业务要求,同时也可以侧面保证用户品牌效应,短信在发送时,需签署已经备案的签名。
验证码/通知类模板设置
1. 短信模板要求
- 不能发送营销/催收/贷款/维权/彩票/色情/暴力/借款/中奖/抽奖/党政/涉嫌违法违纪及宗教类短信(包括短信通知和验证码);
- 不支持行业为:保险/房产/金融理财/教育/留学移民/整形美容/慈善募捐/众筹/烟酒/招聘/交友等类型短信(验证码除外);
- 短信内容不能含有政治敏感字眼和“黄赌毒”等低俗敏感字样,出现违法违规或者损害到相关他人权益的,平台将保留最终追究的权利;
- 验证码模板只支持验证码做变量,变量内参数只支持≤6位的数字或者字母,验证码模板内不支持发送两个变量单位;
- 验证码不支持带除验证码以外内容(例如营销内容,或者带优惠活动内容,或者链接); 不支持全变量/组合变量短信模板;
- 请将短信内容的结构具体,细化使用场景;
- 短信模板不支持特殊符号如¥、★、ヾ(●?▽`●)ノ、_、&;
- 支持TD或T或N进行短信退订回复,其它回复参数不支持;
- 模板如需链接请将已ICP备案的网址写于模板非变量内容中便于核实(短链接不支持拼接地址,例如t.cn${code});
- 变量名称只能填写英文字母或英文数字组合,首位不能为数字,不能纯汉字、纯数字及email、mobile、id、nick、site;
- 如申请验证码模板,内容必须含验证码,注册码,校验证,其中之一,反之请选择通知模板;
- 变量格式应如${code},其中$符在{ }外面,变量内容不能为空;
- 【 】符号在模板内容中任意位置都不能使用,[ ]符号模板内容首尾不能使用,系统均会默认为签名,签名请单独申请,传参需传签名及短信模板ID;
- 变量名称不能带有任何符号或空格;
- 模板内容如侵犯到第三方权益须获得第三方的授权,并将授权委托凭证上传管理中心。
2. 短信模板个数
- 企业&个人用户模板个数不限。
3. 短信模板审核时间
- 预计4小时内审核完成,审核通过后可使用,审核时间:工作日9:00-18:00(法定节日顺延)。
营销类签名和模板设置
只有通过企业认证的用户才可以使用营销类短信,发送营销类短信之前必须单独创建和设置类型为“推广短信”的签名和模板,创建与设置方法同验证码/通知类短信相似,区别在于营销类短信模板不支持变量,在发送营销短信时必须选择推广短信类型的签名和模板才能发送成功。
接口说明
获取org管理员token
获取短信token时需要org管理员的token,以下是org管理员token获取方式:
【请注意,不需要每次获取短信token都去获取org管理员token,只有在接口返回401错误时才需要重新获取org管理员token。】
- Path: /management/token
- Request Method: POST
- URL Params: 无
- Request Headers:
{"Content-Type":"application/json"}
- Request Body:
{"grant_type":"password","username":"{org_admin}","password":"{org_admin_password}"}
【org_admin为org管理员账号,即登录Console时使用的管理员账号;org_admin_password为org管理员密码。】
- 可能的错误码:401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码
curl 示例:
curl -X POST -d '{"grant_type":"password","username":"admin_of_easemob","password":"xxxx"}' "https://a1.easemob.com/management/token"
Response 示例:
{
"access_token": "YWMt1Kz72HakEee9Jqe_xuAMZwAAAV7SWO7rk7M8CSVEBYUXNYvZCsXBjk7D4ZY",
"expires_in": 5183999,
"user": {
"adminUser": true,
"created": 1501583341002
...
}
...
}
其中access_token字段为org管理员token。
获取短信token
发送短信时需要在请求头域填充token字段,此token为短信服务专用token,以下是短信token获取方式。
【请注意,不需要在每次发送短信时都获取短信token,只有在接口返回401错误时才需要重新获取短信token。】
- Path: /{org_name}/{app_name}/token
- Request Method: POST
- URL Params: 无
- Request Headers:
{"username":"{org_admin}","token":"{org_token}"}
【org_admin为org管理员账号,org_token为org管理员token。】
- Request Body: 无。
- 可能的错误码:401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码
curl 示例:
curl -X POST --header "username: admin_of_easemob-demo" --header "token: YWMtmR3eKntAEeepn2lE8ohMwAAAAAAAAAAAAAAAAAAAAAGP-MBq3AgR45fkRZpPlqEwAQMAAAFdu48YFABPGgCEBL6K_xLcscr3f44YBdykhA3f3B5uqw424q_xxxxxx" "https://sms.easemob.com/easemob-demo/chatdemoui/token"
Response 示例:
{"errorCode":0,"data":{"org":"easemob-demo","app":"chatdemoui","createdTime":1505178552823,"modifiedTime":1505178552823,"tokenKey":"201709120909","token":"a5bb2ec5-9120-4e57-87e9-3c56d5b4948e"}}
【其中org为Console中应用详情页面下的OrgName;app为Console中应用详情页面下的AppName;token字段为短信token。】
发送短信
- Path: /{org_name}/{app_name}/sms_send
- Request Method: POST
- URL Params: 无
- Request Headers:
{"token":"{sms_token}","Content-Type": "application/json", "Accept": "*/*"}
【sms_token为短信token。】
- Request Body:
{
"orderId": "ZpAAAFdu48YZpPlqEwAPlqEwAQMQMAAAFdu48Y",
"params": "var1=xxx&var2=yyy",
"receiver": "13811103453",
"sign": "环信",
"templateCode": "080b541a-63e9-467f-b5f5-a3bc5de4bd7d"
}
- 【orderId为订单列表中订单Id,此字段为空时系统按订单时间自动选择订单,一个订单余额不足时,从多个订单扣除余额】
- 【params为模板实参的值列表,多个实参以&连接,实参与值以=连接】
- 【receiver为接收者手机号列表,目前仅支持国内号码,不加+86或0前缀,各号码以,分隔】
- 【sign为审核通过的短信签名,可在Console中短信服务页面查看,签名不能为空且类型必须与短信模板类型一致】
- 【templatecode为审核通过的短信模板代码,可在Console中短信服务页面查看】
- 【模板变量定义格式为${xxx},其中xxx为变量名,请确保格式正确】
- 可能的错误码:401(未授权[无token、token错误、token过期])、404(未发现资源:不存在的签名或不存在的模板等)5xx。详见:服务器端 REST API 常见错误码
curl 示例:
curl -X POST --header "Content-Type: application/json" --header "Accept: */*" --header "token: 8ce15ea0-81c1-4012-9fd9-7c2f2eab0743" -d "{
\"orderId\": \"ZpAAAFdu48YZpPlqEwAPlqEwAQMQMAAAFdu48Y\",
\"params\": \"var1=xxx&var2=yyy\",
\"receiver\": \"133xxxxxxxx\",
\"sign\": \"环信\",
\"templateCode\": \"080b541a-63e9-467f-b5f5-a3bc5de4bd7d\"
}" "https://sms.easemob.com/easemob-demo/chatdemoui/sms_send"
Response 示例:
{
"errorCode": 0,
"data": {
"sessionID": "834d5750810c9490359a0d90ab9bbd0a"
}
}
- 发送成功之后,可以在 “环信-管理后台”——“服务设置”——“短信服务”——“计费统计” 下,根据返回的sessionID(账单号),查看发送结果。