sendTemplateMessage

解释:推送模板消息

百度APP中扫码体验:

接口调用请求说明:请提前在开发者平台创建消息模板。用application/x-www-form-urlencoded方式提交数据。

POST https://openapi.baidu.com/rest/2.0/smartapp/template/send?access_token=ACCESS_TOKEN

名词解释:

  • swan_id:百度生成的与设备相关的唯一标识,APP卸载重安装不会变,详见 swanid机制说明
  • open_id:百度用户登录唯一标识,详见 开放接口-登录
  • formId:页面内form组件的report-submit属性为true时返回formid,详见 form表单

公共请求参数:

参数名 类型 是否必须 描述
access_token string access_token,授权小程序的接口调用凭据

请求参数:

参数名 类型 是否必须 描述
template_id string 所需下发的模板消息的id
touser string 接收者swan_id
touser_openId string 接收者open_id
data json/string {"keyword1": {"value": "2018-09-06"},"keyword2": {"value": "kfc"}}
page string 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar),该字段不填则模板无跳转。
scene_id string 场景id,例如表单id、 orderId或payId
scene_type int 场景type,1:表单;2:百度收银台订单;3:直连订单
ext json/string {"xzh_id":111,"category_id":15}

touser&touser_openId使用规则说明:

  • 百度登录用户使用touser_openId,游客用户使用touser(参考Q&A:怎么判断当前用户是游客状态还是 登录状态)

# Q&A

  1. 消息发送失败可能的原因?
  • scene_id 状态需要和用户登录状态保持一致,否则 scene_id 校验会失败

  • 发送消息时用到的 touser/touser_openid 必须和申请 scene_id 时的 touser/touser_openid 一一对应, 否则也会导致 scene_id 检验失败

  • 如果通过上面的查验仍然发送消息失败,请检查 appkey 是否异常

  1. 怎么判断当前用户是游客状态还是 登录状态?
  • scene_id最后一位是 1 代表登录状态, 最后一位是 0 代表未 登录游客状态

  • 通过swan.isLoginSync API可以判断当前用户是否为 登录状态

  1. 如何获取swan_id & open_id?

# 模板消息开发流程图:

# 错误码

错误码 说明
2002 参数错误
4001 template_id 不正确
4002 消息推送接口调用失败
4003 表单无效
4004 场景id无效
6001 无 push 权限

# 请求示例

实际请求使用form 不是json

    {
    	"touser_openId": "",
    	"access_token":"24.173e34227090dbe664c4991ef5c24779.2592000.1573901211.282335-16099124", 
    	"page": "pages/home/home",
    	"touser":"SL9aK4AETi6bpnzaBVSMgfcTPfkUuNKuvKbyLZmNLKfxanvypng1UCzjgn5VG82QbFeiRdhdsa1q1JnV279RWu8pA", 
    	"scene_type": 1, 
    	"scene_id": "11.d9ea3ac49f00320f4269b8fb72b53194.290079.1571309167.0",
    	"data": {
    		"keyword1": {
    			"value": "16601213222"
    		},
    		"keyword2": {
    			"value": "2019年10月23日 12:30"
    		},
    		"keyword3": {
    			"value": "百度科技园"
    		} ,
    		"keyword4": {
    			"value": "北京市海淀区西北旺东路10号院"
    		}, 
    	"template_id": "ad92f10716024214be69b0db539a30b6"
    }

# 返回示例

    {
	    "errno":0,
	    "msg":"success",
	    "data":{
	    	"msg_key":4330862
	    }
    }