小程序 消息订阅
2021/11/10 12:09:51
本文主要是介绍小程序 消息订阅,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、消息类型 (1) 一次性订阅消息 用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 (2) 长期订阅消息 用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 (3) 订阅消息语音提醒 当开发者调用wx.requestSubscribeMessage时仅订阅1条消息且该模板支持开启语音提醒,当用户开启了语音提醒,该模板的订阅状态为'acceptWithAudio'。 如:收款到账通知 2、配置模板并获取模板id 小程序后台->订阅消息中设置 3、发起订阅 一次性模板id和永久模板id不可同时使用 一次授权调用里,每个tmplId对应的模板标题不能存在相同的,若出现相同的,只保留一个 (1)wx.requestSubscribeMessage wx.requestSubscribeMessage({ tmplIds ['id',...],一次调用最多可订阅3条消息,每个tmplId对应的模板标题需要不相同,否则会被过滤。 success errMsg 接口调用成功时errMsg值为'requestSubscribeMessage:ok' 模板id 'accept'、'reject'、'ban'、'filter' 'accept'表示用户同意订阅该条id对应的模板消息 'reject'表示用户拒绝订阅该条id对应的模板消息 'ban'表示已被后台封禁 'filter'表示该模板因为模板标题同名被后台过滤。 例如 { errMsg: "requestSubscribeMessage:ok", zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: "accept"} fail complete }) (2)获取用户对相关模板消息的订阅状态 当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过wx.getSetting接口可获取用户对相关模板消息的订阅状态 wx.getSetting({ withSubscriptions 是否同时获取用户订阅消息的订阅状态,默认不获取,注意:withSubscriptions只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 success authSetting 用户授权结果 subscriptionsSetting 用户订阅消息设置,接口参数withSubscriptions值为true时才会返回。 { mainSwitch: true, 订阅消息总开关 itemSettings: { 每一项开关 SYS_MSG_TYPE_INTERACTIVE: 'accept', 小游戏系统订阅消息 SYS_MSG_TYPE_RANK: 'accept' zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', 普通一次性订阅消息 ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban', } } miniprogramAuthSetting 在插件中调用时,当前宿主小程序的用户授权结果 fail complete }) (3)服务端发送消息 方式一: POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN 请求体: access_token|cloudbase_access_token 接口调用凭证 touser 接收者(用户)的openid template_id 所需下发的订阅模板id page 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。 data 模板内容,格式形如{"key1":{"value":any},"key2":{"value":any}} 参数类别 参数说明 参数值限制 说明 thing.DATA 事物 20个以内字符 可汉字、数字、字母或符号组合 number.DATA 数字 32位以内数字 只能数字,可带小数 letter.DATA 字母 32位以内字母 只能字母 symbol.DATA 符号 5位以内符号 只能符号 character_string.DATA 字符串 32位以内数字、字母或符号 可数字、字母或符号组合 time.DATA 时间 24小时制时间格式(支持+年月日),支持填时间段,两个时间点之间用“~”符号连接 例如:15:01,或:2019年10月1日 15:01 date.DATA 日期 年月日格式(支持+24小时制时间),支持填时间段,两个时间点之间用“~”符号连接 例如:2019年10月1日,或:2019年10月1日 15:01 amount.DATA 金额 1个币种符号+10位以内纯数字,可带小数,结尾可带“元” 可带小数 phone_number.DATA 电话 17位以内,数字、符号 电话号码,例:+86-0766-66888866 car_number.DATA 车牌 8位以内,第一位与最后一位可为汉字,其余为字母或数字 车牌号码:粤A8Z888挂 name.DATA 姓名 10个以内纯汉字或20个以内纯字母或符号 中文名10个汉字内;纯英文名20个字母内;中文和字母混合按中文名算,10个字内 phrase.DATA 汉字 5个以内汉字 5个以内纯汉字,例如:配送中 基本格式: 姓名: {{name01.DATA}} 金额: {{amount01.DATA}} 行程: {{thing01.DATA}} 日期: {{date01.DATA}} 示例: "data": { "number01": { "value": '339208499' }, "date01": { "value": '2015年01月05日' }, "site01": { "value": 'TIT创意园' }, "site02": { "value": '广州市新港中路397号' } }, miniprogram_state 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 lang "进入小程序查看"的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN 接口调用凭证ACCESS_TOKEN通过如下接口获取 GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 方式二:云调用方式 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const result = await cloud.openapi.subscribeMessage.send({ touser 接收者(用户)的openid template_id 所需下发的订阅模板id page 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。 data 模板内容,格式形如{"key1":{"value":any},"key2":{"value":any}} miniprogram_state 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 lang "进入小程序查看"的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN }) return result } catch (err) { return err } } (4)服务端接收相关的订阅内容 1.当用户触发订阅消息弹框后,用户的相关行为事件结果会推送至开发者所配置的服务器地址。 { "ToUserName": "gh_123456789abc", "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc", "CreateTime": "1620973045", "MsgType": "event", "Event": "subscribe_msg_popup_event", "SubscribeMsgPopupEvent": [ { "TemplateId": "hD-ixGOhYmUfjOnI8MCzQMPshzGVeux_2vzyvQu7O68", "SubscribeStatusString": "accept", "PopupScene": "0" }], } ToUserName 小程序帐号ID FromUserName用户openid CreateTime 时间戳 TemplateId 模板id(一次订阅可能有多个id) SubscribeStatusString 订阅结果(accept接收,reject拒收) PopupScene 弹框场景,0代表在小程序页面内 2.当用户在手机端服务通知里消息卡片右上角“...”管理消息时,或者在小程序设置管理中的订阅消息管理页面内管理消息时,相应的行为事件会推送至开发者所配置的服务器地址。目前只推送取消订阅的事件,即对消息设置“拒收” { "ToUserName": "gh_123456789abc", "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc", "CreateTime": "1610968440", "MsgType": "event", "Event": "subscribe_msg_change_event", "SubscribeMsgChangeEvent": [ { "TemplateId":"BEwX0BOT3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8", "SubscribeStatusString": "reject" }], } ToUserName 小程序帐号ID FromUserName用户openid CreateTime 时间戳 TemplateId 模板id(一次订阅可能有多个id) SubscribeStatusString 订阅结果(reject拒收) 3.调用订阅消息接口发送消息给用户的最终结果,会推送下发结果事件至开发者所配置的服务器地址。 { "ToUserName": "gh_123456789abc", "FromUserName": "o7esq5PHRGBQYmeNyfG064wEFVpQ", "CreateTime": "1620963428", "MsgType": "event", "Event": "subscribe_msg_sent_event", "SubscribeMsgSentEvent": { "List": { "TemplateId": "BEwX0BO-T3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8", "MsgID": "1864323726461255680", "ErrorCode": "0", "ErrorStatus": "success" } } } ToUserName 小程序帐号ID FromUserName用户openid CreateTime 时间戳 TemplateId 模板id(一次订阅可能有多个id) MsgID 消息id(调用接口时也会返回) ErrorCode 推送结果状态码(0表示成功) ErrorStatus 推送结果状态码对应的含义
这篇关于小程序 消息订阅的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享