⼿把⼿教你接⼊抖⾳⼩程序发送模板消息通知
模板消息是指:按照⼀定的模板样式发送给⽤户的消息,顾名思义,它的内容必须限制在某⼀个模板框框内,只能做填空题,做不了主观题。
场景举例:⽤户A下了订单并交易成功,应该给该⽤户⼿机端下发⼀条交易提醒的通知消息,提升⽤户体验感。
限制:通知标题和字段内容只能从平台给出的模板⾥⾯选择,⽆法⾃定义,如果平台提供的模板确实都⽆法符合业务场景的,可以向平台申请新模板和关键字,不过⼀提到申请,不⽤说,按尿性肯定是要审核时间的,还可能⼀次通过不了,要修改了再提交审核,反正就是要花时间。
不过按照官⽅提⽰,⽬前只有今⽇头条⽀持,抖⾳和 lite 还在接⼊中。最终效果展⽰在⽂末
1、配置模板消息
第⼀步就是要先到⼩程序管理后台去创建消息模板,配置好关键词,⽣成消息通知ID,这个ID⾄关重要,因为它是模板消息接⼝必传参数之⼀,如下。
2、代码实现
看⼀下发送消息的⽅法,如下:
/**
* 字节跳动发送模板消息通知
* utiao/docs/server/template_message/send.html
* @param templateVo
* @return
*/
public static boolean sendMessage(TemplateVo templateVo){
boolean flag =false;
TouTiaoTemplate t =new TouTiaoTemplate();
t.setAccess_AccessToken());
t.OpenId());
t.setTemplate_TemplateId());
t.Page());
t.setForm_FormId());
Map<String, SubData> m =new HashMap<String, SubData>();
List<String> values = Values();
int nums = values.size();
for(int i =0;i < nums;i++){
SubData keyword =new SubData();
keyword.(i));
m.put("keyword"+i, keyword);
}
t.setData(m);
String requestParam = JSONString(t);
JSONObject jsonObject = CommonUtil.httpsRequestJson("utiao/api/apps/game/template/send",
"POST", requestParam);
logger.info("头条消息推送模板json======{}",jsonObject);
if(jsonObject != null){
int errorCode = Int("errcode");
String errorMessage = String("errmsg");
if(errorCode ==0){
logger.info(errorCode +","+ errorMessage);
flag =true;
}else{
logger.info("头条消息发送失败:"+ errorCode +","+ errorMessage);
前端页面模板flag =false;
}
}
return flag;
}
针对上⾯的 TemplateVo 参数所包含的字段解释⼀下:
String openId:要发送给⽤户的openid,必传
String accessToken:服务端API调⽤标识,必传
String formId:可以通过组件获得form_id,必传,这个是前端同学传过来的,不⽤我们后台关⼼
String templateId:在开发者平台配置消息模版后获得的模版id,必传
String page:点击消息卡⽚之后打开的⼩程序页⾯地址,空则⽆跳转,⾮必传,个⼈觉得传了⽐较好,也不差这⼀个参数,让⽤户点击模板消息就到相应的页⾯,体验会更好,⽐如到⾸页,格式如:pages/index/index
List values:这是⼀个数组,就是对应于我们模板消息的各个关键字的值,顺序⼀定要对,不能乱
同样,针对上⾯的 TouTiaoTemplate 参数所包含的字段解释⼀下,和TemplateVo差不多,只不过TouT
iaoTemplate封装的是直接传给抖⾳接⼝的参数,TemplateVo是为了⽅便外部调⽤⽽封装的参数:
access_token:服务端API调⽤标识,必传
touser:要发送给⽤户的openid,必传
template_id:在开发者平台配置消息模版后获得的模版id,必传
page:点击消息卡⽚之后打开的⼩程序页⾯地址,空则⽆跳转,⾮必传,个⼈觉得传了⽐较好,也不差这⼀个参数,让⽤户点击模板消息就到相应的页⾯,体验会更好,⽐如到⾸页,格式如:pages/index/index
form_id:可以通过组件获得form_id,必传,这个是前端传过来的,不⽤我们后台关⼼
data:模板中填充着的数据,key必须是keyword为前缀,必传,注意,要求是key必须是keyword为前缀,如下⾯的for循环那样拼接,取到传⼊的values数组,然后遍历出来拼接上keyword前缀
for(int i =0;i < nums;i++){
SubData keyword =new SubData();
keyword.(i));
m.put("keyword"+i, keyword);
}
httpsRequestJson 这个http请求⽅法代码参考实现扫描⼆维码关注,直接注册登录⽹站这篇⽂章。
3、发送效果
说再多都没⽤,看下最终的效果哈

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。