手把手教你接入抖音小程序发送模板消息通知

简介: 模板消息是指:按照一定的模板样式发送给用户的消息,顾名思义,它的内容必须限制在某一个模板框框内,只能做填空题,做不了主观题。

模板消息是指:按照一定的模板样式发送给用户的消息,顾名思义,它的内容必须限制在某一个模板框框内,只能做填空题,做不了主观题。

场景举例:用户A下了订单并交易成功,应该给该用户手机端下发一条交易提醒的通知消息,提升用户体验感。

限制:通知标题和字段内容只能从平台给出的模板里面选择,无法自定义,如果平台提供的模板确实都无法符合业务场景的,可以向平台申请新模板和关键字,不过一提到申请,不用说,按尿性肯定是要审核时间的,还可能一次通过不了,要修改了再提交审核,反正就是要花时间。

不过按照官方提示,目前只有今日头条支持,抖音和 lite 还在接入中。最终效果展示在文末

image.png

1、配置模板消息

第一步就是要先到小程序管理后台去创建消息模板,配置好关键词,生成消息通知ID,这个ID至关重要,因为它是模板消息接口必传参数之一,如下。

image.png

image.png

image.png

image.png

2、代码实现

看一下发送消息的方法,如下:

     * 字节跳动发送模板消息通知
     * https://developer.toutiao.com/docs/server/template_message/send.html
     * @param templateVo
     * @return
     */
    public static boolean sendMessage(TemplateVo templateVo) {
        boolean flag = false;
        TouTiaoTemplate t = new TouTiaoTemplate();
        t.setAccess_token(templateVo.getAccessToken());
        t.setTouser(templateVo.getOpenId());
        t.setTemplate_id(templateVo.getTemplateId());
        t.setPage(templateVo.getPage());
        t.setForm_id(templateVo.getFormId());
        Map<String, SubData> m = new HashMap<String, SubData>();
        List<String> values = templateVo.getValues();
        int nums = values.size();
        for (int i = 0;i < nums;i++) {
            SubData keyword = new SubData();
            keyword.setValue(values.get(i));
            m.put("keyword"+i, keyword);
        }
        t.setData(m);
        String requestParam = JSON.toJSONString(t);
        JSONObject jsonObject = CommonUtil.httpsRequestJson("https://developer.toutiao.com/api/apps/game/template/send",
                "POST", requestParam);
        logger.info("头条消息推送模板json======{}",jsonObject);
        if (jsonObject != null) {
            int errorCode = jsonObject.getInt("errcode");
            String errorMessage = jsonObject.getString("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差不多,只不过TouTiaoTemplate封装的是直接传给抖音接口的参数,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前缀

    SubData keyword = new SubData();
    keyword.setValue(values.get(i));
    m.put("keyword"+i, keyword);
}

3、发送效果

说再多都没用,看下最终的效果哈

image.png

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

上一篇:Web前端登录拼图验证功能,看你是人还是机器

相关文章
|
2月前
|
小程序 安全 搜索推荐
【社区每周】新版O站上线,小程序新增无需审核的普通模板(2022年7月第三期)
【社区每周】新版O站上线,小程序新增无需审核的普通模板(2022年7月第三期)
32 1
|
1月前
|
小程序 前端开发 开发者
【微信小程序】-- WXSS 模板样式- rpx & import (十三)
【微信小程序】-- WXSS 模板样式- rpx & import (十三)
|
1月前
|
小程序 JavaScript
【微信小程序】-- WXML 模板语法 - 事件绑定 -- tap & input (十)
【微信小程序】-- WXML 模板语法 - 事件绑定 -- tap & input (十)
|
3月前
|
小程序 算法 搜索推荐
抖音、微信、钉钉小程序:哪个是未来发展的方向
抖音、微信、钉钉小程序:哪个是未来发展的方向
|
1月前
|
小程序 容器
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
|
1月前
|
小程序 JavaScript
【微信小程序】-- WXML 模板语法 - 数据绑定(九)
【微信小程序】-- WXML 模板语法 - 数据绑定(九)
|
30天前
|
关系型数据库 Serverless 分布式数据库
Serverless 应用引擎常见问题之在抖音快手小程序上使用如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
22 3
|
1月前
|
JSON 小程序 搜索推荐
【微信小程序】-- 模板语法与配置的总结(二十一)
【微信小程序】-- 模板语法与配置的总结(二十一)
|
1月前
|
小程序
【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)
【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)
|
1月前
|
小程序 JavaScript 索引
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)

热门文章

最新文章