通讯
通讯行为包含:
- 微信提醒
- 短信提醒
- 拨打电话
- 授权消息通知
- 获得电话号码
- 唤起小程序客服
1.微信提醒
作用
移动应用除了通过交互界面和用户互动以外,有一个非常重要的场景就是通知用户和唤回用户。比如通知用户发货,通知用户外卖已经送到,通知用户有新活动可以报名等等,都需要用到通知功能。用户可以通过点击通知卡片快速进入小程序。
- 小程序订阅消息通知又分为了“长期订阅消息”和“一次性订阅消息”。看起来肯定是长期订阅更好,但是微信对此是有要求的。目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放。 所以一般小程序只能使用“一次性订阅消息”
订阅消息通知 | 服务号通知 |
---|---|
- 小程序订阅消息通知”和“服务号通知”的区别是什么?
- 首先是展示位置不同:
- 小程序订阅消息通知,是展示在微信对话中的一个叫【服务通知】的集合处,所有的小程序通知以及小程序内支付通知都会集中在这里。
- 服务号通知则是会单独展示在自己的服务号提醒中,不会和其他应用/服务号的通知混在一起,相对来说是更明显的通知,但是前提是需要用户关注服务号。
- 要求不同:
- 小程序订阅消息通知,需要用户如上图左,一定要授权消息提醒,同意提醒后才能提醒,而且是同意一次,只能通知一次;如果要再次通知,还需要再次授权。
- 服务号通知,需要用户关注服务号,只要用户保持关注,就可以一直提醒用户。但是一旦用户取消服务号关注,则不能继续通知。
- 首先是展示位置不同:
场景
外卖下单成功触发【授权消息提醒】,外卖送达后触发【微信提醒】提醒用户取外卖。
行为配置
创建消息模板与授权消息提醒, 详情请见本文短信和授权提醒部分。
发送微信提醒
只要授权过并确定还有授权剩余未使用次数,就可以发送【微信提醒】
注意:【微信提醒】行为一定要放在“行为流”功能中触发,添加一个微信提醒的行为流,在操作中添加代码块,复制如下所示的代码,配置对应的入参
添加行为流
在编辑器左上角点击【行为流】按钮,进入行为流编辑界面,添加一个行为流,并根据业务需求对行为流进行命名,然后点击入参,入参的内容根据在本文短信提醒中创建的模版来进行配置,例如模版中的详细内容就是入参内容:thing1、date2、thing4,都是文本类型,accountId就是接受者对象的ID
添加并编辑代码块
- 点击入参下方的【+】号,添加代码块
- 在代码块中添加入参数,并将下方代码复制到代码编辑器中
- 展开后的配置:
- 消息提醒代码
const thing1 = context.getArg('thing1'); const thing4 = context.getArg('thing4'); const date2 = context.getArg('date2'); const accountId = context.getArg('accountId'); const data = { 'thing1':thing1, 'date2':date2, 'thing4':thing4 }; // 根据消息模版进行修改 const gql = `mutation publishWechatMessage($data: Map_String_StringScalar,$accountId:Long!){ publishWechatMessage( accountId: $accountId data: $data miniprogramState: FORMAL page: "pages/lil7gbne/lil7gbne" lang: CN templateId: "RQH7FafxS4_jQsRSN6ujLLKUoWuXpC3uLvYP1WL75Ys" ) }`; // templateId 就是模版消息中的 模版ID ,一定要替换自己消息模版中的ID !!!!! context.runGql('publishWechatMessage', gql,{data,accountId}, { role: 'admin'});
参数说明
- page 是点击模板卡片后的跳转页面,仅限本小程序内的页面(lil7gbne为页面的组件id,在页面右上角可以复制)
- accountId 对应用户id,即接受消息的账户id
- 这里的thing1、thing4、date2 和 templateId(模板ID) 在微信后台都可以找到,如下图,其他参数不用改。⚠️ 注意:下图中详细内容中的参数名可能会因为消息模版不同而改变,你需要根据模版中的参数名来修改行为流、代码块入参以及代码块中的参数名称
- 参数值内容限制说明
保存行为流
为了让行为流生效,配置完成后需要点击保存按钮进行保存
调用微信提醒的行为流
一般在修改表数据成功时调用微信提醒的行为流,根据参数情况进行入参的绑定,执行成功就会在小程序“服务通知”中发送消息提醒
注意你要选的参数时间格式类型
img | img | img |
---|---|---|
2.短信提醒
作用
通过点击行为触发发送手机短消息的功能,在配置好短信模版之后,需要在行为流中进行配置该行为
行为配置
1. 配置短信模版
- 上传营业执照
- 发送短信设置
在设置中上传营业执照成功后重新打开设置可以看到短信模版配置按钮 短信签名即短信“【函子科技】你的验证码为231312” 中【函子科技】这一部分,用于标明短信发送方的信息,短信签名一个项目只能设置一个,审核通过后不可更改,在签名审核通过以后签名设置页面将不再可见,而是会直接进入短信模版配置页面
委托书注意事项:
- 授权书右下角落款处,需要授权方(即签名归属方)的法定代表人/负责人签字;
- 授权书签署日期,需要填写完整;
- 被授权方应为“函子科技(上海)有限公司”;
实际申请的签名要与授权书中的签名一致;
- 短信签名:在发送短信设置中需要先设置短信签名,用于短信消息显示
- 签名来源选择:公众号或小程序
- 描述:用于给审核人员查看(一般描述为:哪个公司用于哪个功能),写清楚小程序或公众号名字叫什么
- 设置短信模版
- 模版名称:定义短信模版的名字
- 模版分类:分为推广短信、短信通知、验证码三种,一般给用户发送购买成功相关的信息时建议选择“短信通知”
- 模版描述:给阿里云审核时查看的内容,建议写清楚这个短信模版的用途模版内容:发送给用户的具体内容,可以在模版内容中定义单个或多个参数,例如发送短信内容时需要带上用户名,那么可以定义 $(username) 作为用户名参数即可
- 注意事项:审核中/审核通过的模版不可再修改;模版暂不支持删除;同一时间只能新建一个模版,上传以后可以新建第二个;模版内容支持变量名设置,点击小标题右侧蓝色问号查看格式;两个变量之间需要用字符来隔离;审核失败的模版会在详情区域显示失败原因。模板内容任意位置均不能使用【】,且首尾不能使用[]。
- 模版名称:定义短信模版的名字
img | img |
---|---|
2. 触发发送短信功能
配置行为流
在 Zion 的行为流中添加一个新的行为流,命名根据业务情况而定,比如是“购买成功短信通知”定义入参
在行为流的入参中添加如下参数:- phone_number:接收短信的用户的手机号码,文本类型,必须要添加。
- username:接收短信的用户名,如果在短信模版中配置了该参数,那么在这里也需要添加,文本类型。
- variable:接收短信的用户购买的服务内容,如果在短信模版中配置了该参数,那么在这里也需要添加,文本类型。
- 添加代码块操作
点击入参下方的 + 号,添加代码块操作,并在代码块操作右侧配置栏中添加入参,参数名称与上一步中的名称一致,值从「行为流数据/行为流入参」中找到上一步中定义的参数即可
- 编写代码
点击上一步的代码块右侧配置栏右上角展开按钮,进入代码块编辑页面,在编辑页面复制下方代码,根据自己的业务情况对参数名称或者内容进行修改: 其中的「templateCode」需要联系 Zion 工作人员进行获取,定义完行为流之后需要点击保存以及更新后端才能生效!
const phone_number = context.getArg('phone_number');// 获取手机号
const variable = context.getArg('variable');//获取服务内容
const username = context.getArg('username');//获取用户名
const gql = `mutation sendMessage($phone_number: String, $variable: String, $username:String ){
sendSmsByTemplateId(
phoneNumber: $phone_number,
templateParams: {variable:$variable,username:$username},
templateCode: "SMS_276195458"
)
}
`;
context.runGql('sendMessage',gql,{phone_number,variable,username},{ role: 'admin' });
- 调用发送短信的行为流
一般通过点击或者在某些修改表数据成功时调用短信通知的行为,你可以在交互中找到上一步中添加好的行为流进行配置,配置的入参内容就是上一步中定义好的参数内容
3.拨打电话
作用
点击时拨打配置好的客服电话或通过手机号联系相关小程序内使用用户
行为配置
在组件的交互中添加 通讯 - 拨打电话 行为,在行为中填写或绑定电话号码即可
行为选择 | 号码输入 |
---|---|
案例
安卓和IOS的触发方式存在一部分差异,不过目的都是调起系统级别的电话功能进行指定号码的拨打。
安卓手机端-小程序
web 端
区别于小程序的拨打电话行为,web端(PC web 、移动端H5)也是支持拨打电话功能的,但此功能并未添加到行为内,而是通过【打开外部链接】行为实现,通过【通用的电话拨打规则】:tel://+手机号码,去调起不同系统的拨打电话功能
此功能适用于:Mac Os、Windows、安卓、ios,其他系统暂不清楚是否支持。Mac Os优先会调起Facetime,Windows优先是Skype,安卓、ios和小程序端类似。
4.授权消息提醒
作用
授权微信订阅消息通知。
长期订阅和一次订阅的区别
由于微信要保护用户不受到小程序运营方的骚扰,所以会要求用户必须同意通知行为才可以通知。那么这当中就分为两种情况:
- 长期订阅:顾名思义,就是只要授权了一次消息提醒,就可以无限制的给用户发通知,但是这只能是限于政务民生、医疗、交通、金融、教育等线下公共服务开放。个人和普通企业是没办法使用这个服务的。
- 一次订阅:是常见的用法,字面理解是授权一次,就只能通知一次。但是经常会有开发者错误的使用这个功能,以为这个授权之后马上就要通知且授权次数不可以累积,实际上:
- 用户同意一次授权,实际在后台就会加一次消息发送权限,重复授权会累积发送消息权限的次数,比如用户同意了5次授权,那么就可以给用户发送5次消息,但最多累积50次发送消息的权限。
- 累积次数虽然有上限,但授权次数是没有上限的。例如:授权了60次但没有发送一次消息,可发送消息次数也只有50次;当50次消耗完时,可以继续授权获取次数。
- 发送消息权限是没有时间限制的,也就是不一定要在授权成功之后立马发送消息,只要有剩余的授权次数,什么时候都能够发送消息提醒。
- 授权消息提醒可以在条件、其他行为的成功时、修改行为成功时进行触发,不是一定要在按钮上触发。
行为配置
创建消息模板
先登录微信公众平台扫码并选择需要的小程序,在后台中的“订阅消息”中,创建自己需要的通知模板。
- 先点击公共模板库,选用适合的模板
- 启用需要的字段,需要自定义字段可以在上方启用字段下方,申请自定义关键词,通过审核即可使用。
- 启用模板后,在我的模板中可以查看详情,需要复制这里的模板ID并注意内容的格式
授权消息提醒
之所以叫一次性订阅消息,就是因为每次消息通知前都需要授权一次。每授权一次才能提醒一次,所以使用消息通知的前提条件就是需要先授权。
如下图所示,在启用了模板之后,就可以在行为【授权消息提醒】中的【消息模板】找到刚才启用的模板了。可以在授权消息成功时去执行其它的交互行为
行为选择 | 配置消息模版和修改次数 |
---|---|
注意:
- 用户同意一次授权,实际在后台就会加一次消息发送权限,重复授权会累积发送消息权限的次数,比如用户同意了5次授权,那么就可以给用户发送5次消息,但最多累积50次发送消息的权限。
- 累积次数虽然有上限,但授权次数是没有上限的。例如:授权了60次但没有发送一次消息,可发送消息次数也只有50次;当50次消耗完时,可以继续授权获取次数。
- 发送消息权限是没有时间限制的,也就是不一定要在授权成功之后立马发送消息,只要有剩余的授权次数,什么时候都能够发送消息提醒。
- 授权消息提醒可以在条件、其他行为的成功时、修改行为成功时进行触发,不是一定要在按钮上触发。
特殊提醒
- 该行为只有在小程序端可以配置
- 授权制作完成后,就可以使用微信提醒功能等功能
5.获得电话号码
作用
通过点击触发获取当前微信用户的手机号码
行为配置
- 在需要获取手机号码的页面添加页面数据 phone_number,页面数据的类型选择为「文本」
- 为某个组件添加获得电话号码行为,在行为中将电话号码赋值给刚才创建的页面数据,在成功时,你可以通过设置输入框行为,将手机号码直接赋值给到输入手机号的输入框,或者通过修改表数据行为将手机号添加/更新到数据库中
行为选择 | 赋值页面数据 |
---|---|
特殊提醒
- 该行为只有在小程序端可以配置
- 该行为仅支持认证为企业/政府的小程序号使用,个人小程序无法使用(如图);该行为为系统行为,仅能通过点击触发,不能配置在“成功时”里
6.唤起小程序客服
作用
用户可使用小程序客服消息功能,与小程序的客服人员进行沟通,在小程序内通过点击行为可以唤起该行为。如果用户为企业微信组织,小程序为企业版,可选择接入企业微信客服。
行为配置
- 进入微信公众平台-登入要开通客服功能的小程序-进入功能-客服入口,选择小程序客服/微信客服,输入想设置为客服的微信号后保存。
- 一般在小程序内添加一个按钮组件,然后为其添加【唤起小程序客服】行为,用户就可以在点击后在小程序内唤起客服会话页面,给小程序客服发送消息;
行为选择 | 点击唤起 |
---|---|
- 配置效果:
线上效果 | 点击唤起 |
---|---|
- 已使用过的小程序客服消息会聚合显示在微信会话「小程序客服消息」盒子内,用户可以在小程序外查看历史客服消息,并给小程序发送消息。
特殊提醒
- 该行为只有在小程序端可以配置
- 小程序客服属于小程序“系统行为”,不能添加在其他行为当中,比如修改行为的成功时、条件中等。