关于推送消息:极光笔记-EngageLab-Push的多时区解决方案

01、引言多时区问题始终是寰球客户和终端用户面临的挑战之一。EngageLab Push 致力于解决这个问题,确保寰球各地的终端用户能够平等地享受到同样的推送服务,同时让客户可能更好地治理不同时区的利用和对应的终端用户。 02、解决多时区问题的总体方案 1、在服务器端,所有波及工夫的信息对立以工夫戳模式存储2、portal 端的展现,以用户给利用设置的时区对应的工夫展现3、终端和服务器交互协定中的工夫以工夫戳来传递,终端再依据本地时区信息将工夫戳转换为本地工夫 03、管理系统多时区管理员在 portal 上创立利用,再给利用设置时区,这些信息都会保留到数据库中,跟工夫相干的信息都以工夫戳的格局存储在数据库中。当管理员查问利用相干信息时,对于工夫相干信息,零碎将工夫戳转换成利用所在时区的本地工夫展现给管理员 04、业务解决多时区推送业务按推送时效性来分有两种推送形式,立刻推送和定时推送,立刻推送跟时区个性无关,点击推送时就立刻推送,然而定时推送跟时区相干,到底是以利用所在时区的工夫进行定时推送,还是以终端所在时区对应的工夫进行定时推送呢,这两种定时推送都存在相应的场景。 预设条件如下图利用所在时区为东6区服务器部署在东8区终端用户散布在东4区、东1区、西3区 场景1:依据利用所在时区的工夫进行定时推送场景 比方某款电商利用,打算在中午12点发动秒杀流动,心愿在12点钟准时给用户推送提醒用户进入秒杀页面加入流动。这种场景就须要用到依据利用所在时区的工夫进行定时推送。1、当初利用须要在东六区的2023-03-18 12:00:00 进行秒杀流动,于是在东六区的2023-03-18 10:00:00设置了一个定时推送工作,该工作的定时工夫为利用(利用归属于组织,因而利用的时区继承了组织的时区)所在时区的2023-03-18 12:00:002、东六区的2023-03-18 12:00:00,转换为服务器的东8区的工夫为:2023-03-18 14:00:00,所以在服务器的2023-03-18 14:00:00, 触发定时工作,将音讯推送给对应的终端用户。3、终端用户在同一时刻收到秒杀的推广音讯。本地工夫别离是东4区的2023-03-18 10:00:00东1区的2023-03-18 07:00:00西3区的2023-03-18 03:00:00 场景2:依据终端所在时区的工夫进行定时推送场景 比如说有个早间新闻播报的利用,须要在早上8点定时将最新的资讯推送到终端用户,如果以利用所在时区的工夫来推送,利用所在时区的早上8点可能是终端所在时区的凌晨3点钟,这个时候经音讯推送给终端用户,显然是不适合的,因而须要以终端用户所在时区的早上8点进行定时推送。1、管理人员设置了一个定时推送工作,该工作的定时工夫为终端用户所在时区的2023-03-18 08:00:00进行推送 2、服务器定时扫描定时推送工作服务器发现该定时推送的目前中有东4区的终端用户,东4区的2023-03-18 08:00:00转换为服务器的东8区的工夫为2023-03-18 12:00:00,所以在服务器的2023-03-18 12:00:00, 触发定时推送工作,将音讯推送给东4区的终端用户。服务器发现该定时推送的目前中有东1区的终端用户,东1区的2023-03-18 08:00:00转换为服务器的东8区的工夫为2023-03-18 15:00:00,所以在服务器的2023-03-18 15:00:00, 触发定时推送工作,将音讯推送给东1区的终端用户。服务器发现该定时推送的目前中有西3区的终端用户,西3区的2023-03-18 08:00:00转换为服务器的东8区的工夫为2023-03-18 19:00:00,所以在服务器的2023-03-18 19:00:00, 触发定时推送工作,将音讯推送给西1区的终端用户。3、终端用户都是本地工夫的2023-03-18 08:00:00点收到推送音讯业务流程1、终端时区的上报每个终端在登陆服务器时,就把以后终端所在的时区上报给服务,服务器依据时区将用户信息分组存储 2、定时推送的设置管理人员在设置定时推送工作时依据工作个性抉择是按利用所在时区定时推送还是按终端所在时区定时推送。服务器将这些定时推送工作信息保留到数据库中 3、定时推送的触发服务器会启动一个定时扫描过程,去扫描数据库中的定时推送工作是否达到某个时区所定时的工夫,如果到了,就将音讯推送推送给该时区的用户。 对于极光极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国当先的客户互动和营销科技服务商。成立之初,极光专一于为企业提供稳固高效的音讯推送服务,凭借先发劣势,曾经成长为市场份额遥遥领先的挪动音讯推送服务商。随着企业对客户触达和营销增长需要的不断加强,极光前瞻性地推出了音讯云和营销云等解决方案,帮忙企业实现多渠道的客户触达和互动需要,以及人工智能和大数据驱动的营销科技利用,助力企业数字化转型。

May 26, 2023 · 1 min · jiezi

小程序模板消息能力调整新的订阅消息将不受时间限制

昨日,微信在小程序模块消息能力方面公布了一项重大调整。原有的模块消息将升级为「订阅消息」,支持一次性和长期性订阅消息。而模块消息将于2020年1月10日下线,小程序将无法再使用原接口推送模板消息,因此开发者需要及时进行调整。 以往,模块消息作为服务进度提醒和召回用户的重要入口,受到了不少小程序运营者的青睐。但是,部分小程序利用「模板消息」推送营销广告甚至是虚假信息诱导点击。为用户带来骚扰,也影响了微信小程序生态的良好运行。 另一方面,模块消息需要在用户点击触发之后的7天内进行推送,但对于服务周期超过7天的小程序,「模板消息」无法满足它们的需求。 因此,微信对模板消息下发条件进行了调整,将小程序的推送进行场景化细分,每个推送模块都需要经过用户主动授权。用户只有根据需求进行订阅,才会收到小程序的服务通知,并且消息推送没有时间限制,部分公共服务场景还提供了长期订阅功能。 「订阅消息」消息类型新上线的「订阅消息」消息类型分为两种: 一次性消息推送 :用户订阅一次后,小程序可不限时间地推送一条订阅消息。如果用户想避免重复授权,可以勾选“总是保持以上选择,不再询问”并点击允许,以后便默认同意订阅这类消息,无须做多次选择。 长期性消息推送:用户订阅一次后,小程序可长期推送多条消息。目前长期性订阅消息仅面向政务、医疗、交通、金融、教育等线下公共服务小程序开放,后续将根据行业需求和用户体验不断进行完善。 「订阅消息」会带来什么影响?「订阅消息」的更新,意味着用户不再被动地接收信息,小程序消息推送的选择权回到用户手中。以往,当用户选择接收推送后,小程序便不加区分地将服务信息、营销信息统统推送给用户。现在,用户能够自主选择小程序的消息,也可以随时拒收该小程序的服务通知。 对于开发者而言,由于用户主动订阅才可以推送消息,之前通过不断收集formid来发送消息模板的操作将会失效,小程序开始走向人性化、精细化运营。 另一方面,「订阅消息」取消了7天内推送消息的限制,推送时间更加灵活并且能够契合多样化的服务需求。只要用户没有主动拒收,开发者就可以随时推送服务通知。使消息触达更加高效,也使用户唤醒更加方便。 「订阅消息」能用在什么地方· 用户召回对于低频、长线服务的小程序而言,订阅消息在用户召回方面显得更为重要。小程序提供实用的服务功能,让用户主动授权。在退出小程序后,小程序依然能结合场景因素,在后续选择合适的时间为用户提供服务消息,再次唤醒沉默的用户。 但是在召回用户同时,开发者需要顾及用户体验。根据订阅消息运营规范,使用订阅消息能力进行诱导订阅、诱导点击、内容与用户预期不符都会被视为违规。因此,订阅后解锁某个操作,或者订阅后获得奖励都是不被允许的。详见==小程序订阅消息接口运营规范==:https://developers.weixin.qq.... · 刚需服务既然订阅消息的选择权在用户手里,那么小程序能否提供用户需要的服务则成为关键。订阅消息可以更精准化、个性化,引导用户在不同场景内去订阅。例如生活类小程序的服务进度提醒、电商小程序的降价通知、内容小程序的话题推送等等。 针对不同行业的小程序,微信提供了各种消息模板,开发者可在后台选择相应的模板使用。比如,针对小游戏,微信就提供了排行榜、新功能发布、活动结束、版本更新、道具领取等14种通用模板。 在原来的模块消息下线之前,开发者们注意对接口进行及时调整。接入「订阅消息」能力,==可参考接口文档==:https://developers.weixin.qq.... 我们最近新建了个WeGeek技术交流群,欢迎小程序开发同好者进群交流,调戏勾搭群里的云开发大神~扫码添加Wegeek小助手即可获取进群方式。

October 14, 2019 · 1 min · jiezi

知晓推送正式上线送你-13-亿条模板消息

「知晓推送」能帮助小程序运营人员有效解决粉丝转化、消息推送、数据分析等多个层面的麻烦事,让小程序推广难、留存差的问题从此成为过去式。在服务上线的这个重要的日子里,贴心的小云专门向”知晓开发联盟“总部申请了一笔庆祝基金全额当做用户福利发放。(谨遵局长史塔克的教导:钱都不是事儿,先交个朋友~” 于是有了这次巨额福利活动。开不开心鸭! 活动时间:5 月 8 日 - 5 月 22 日 新人专享 - 注册即得活动期间通过下方链接注册的新用户,即可获得 90 元优惠券及 20W 条模板消息。不设上限。 (注册点这里???? https://cloud.minapp.com/?inv...) 充值返利 - 瓜分 13 亿条模板消息活动期间成功充值(含购买模板消息资源包)的小伙伴,将共同瓜分 13 亿条模板消息。充得越早、越多,分得越多。 比如说,今天充 100 大概可以获得 100w 条模板消息,而随着参与人数变多,奖励被稀释,明天充 100 可能就只能分到 50w 条,so 你懂的,速来 ~ 我们将在 5 月 23 日进行抽奖公示并发放奖励。 老用户回馈 - 专属诚意礼包在 5 月 8 日前创建的应用都会获赠一定数额的模板消息。(获赠条数=应用创建月数*套餐每月免费额度;不足 1W 条的向上取整) 另外,活动期间每个升级至个人版或以上版本的应用,都将获赠 50W 条模板消息。 抽奖啦朋友有知晓云限量 T 恤 + 90 元小程序开发基金 (20 份)作为本次活动的奖品。另外邀请好友中奖,你也能得到同等奖励哦~ T 恤长这样????抽奖需要扫描图片下面的微信小程序码哦~打开微信扫描二维码即可参与抽奖???? ...

May 9, 2019 · 1 min · jiezi

微信小程序发送模板消息!附前端+后端源码~

前端,index.wxml<form bindsubmit=“submit” report-submit=‘true’ > <input type=‘text’ value=‘填写openid’ name=“openid”></input> <input type=‘text’ value=‘填写ACCESS_TOKEN’ name=“token”></input> <input type=‘text’ value=‘填写模板ID’ name=“template”></input> <input type=‘text’ value=‘模板的第1个关键词’ name=“keyword1”></input> <input type=‘text’ value=‘模板的第2个关键词’ name=“keyword2”></input> <input type=‘text’ value=‘模板的第3个关键词’ name=“keyword3”></input> <input type=‘text’ value=‘模板的第4个关键词’ name=“keyword4”></input> <input type=‘text’ value=‘模板的第5个关键词’ name=“keyword5”></input> <button form-type=“submit” type=“default”>推送</button></form>index.js// pages/mubanxiaoxi/mubanxiaoxi.jsPage({ data: { }, submit: function (e) { var openid = e.detail.value.openid; var access = e.detail.value.token; var template = e.detail.value.template; var keyword1 = e.detail.value.keyword1; var keyword2 = e.detail.value.keyword2; var keyword3 = e.detail.value.keyword3; var keyword4 = e.detail.value.keyword4; var keyword5 = e.detail.value.keyword5; var that = this; wx.request({ url: ‘域名/muban.php?openid=’ + e.detail.value.openid + ‘&token=’ + e.detail.value.token + ‘&template=’ + e.detail.value.template + ‘&formid=’ + e.detail.formId + ‘&keyword1=’ + e.detail.value.keyword1 + ‘&keyword2=’ + e.detail.value.keyword2 + ‘&keyword3=’ + e.detail.value.keyword3 + ‘&keyword4=’ + e.detail.value.keyword4 + ‘&keyword5=’ + e.detail.value.keyword5, //接口地址,我学习就用get,建议用post data: { open_id: openid, tok_en: access, temp_late: template, form_id: e.detail.formId, keyword_1: keyword1, keyword_2: keyword2, keyword_3: keyword3, keyword_4: keyword4, keyword_5: keyword5 }, success: function (res) { // console.log(e.detail.formId); // console.log(res.data); } }) }})后端,muban.php<?php //GET参数 $access_token=$_GET[’token’]; $openid=$_GET[‘openid’]; $templateid=$_GET[’template’]; $formid=$_GET[‘formid’]; $keyword1=$_GET[‘keyword1’]; $keyword2=$_GET[‘keyword2’]; $keyword3=$_GET[‘keyword3’]; $keyword4=$_GET[‘keyword4’]; $keyword5=$_GET[‘keyword5’]; echo $keywordd1; //此处开始处理数据 $dataa=array( “keyword1”=>array( “value”=>$keyword1, “color”=>"#9b9b9b"), “keyword2”=>array( “value”=>$keyword2, “color”=>"#9b9b9b"), “keyword3”=>array( “value”=>$keyword3, “color”=>"#9b9b9b"), “keyword4”=>array( “value”=>$keyword4, “color”=>"#9b9b9b"), “keyword5”=>array( “value”=>$keyword5, “color”=>"#9b9b9b") ); $data=array(); $data[’touser’]=$openid; $data[’template_id’]=$templateid; $data[‘form_id’]=$formid; $data[‘data’]=$dataa; $url = ‘https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token; $type=“json”; if($type==‘json’){//json $_POST=json_decode(file_get_contents(‘php://input’), TRUE); $headers = array(“Content-type: application/json;charset=UTF-8”,“Accept: application/json”,“Cache-Control: no-cache”, “Pragma: no-cache”); $data=json_encode($data); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS,$data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers ); $output = curl_exec($curl); if (curl_errno($curl)) { echo ‘Errno’.curl_error($curl);//捕抓异常 } curl_close($curl); echo $output;?>至于openid和access_token怎么获取,自己另外学习咯!推送成功! ...

December 5, 2018 · 2 min · jiezi