CN113239297A - 消息推送方法、***及存储介质 - Google Patents
消息推送方法、***及存储介质 Download PDFInfo
- Publication number
- CN113239297A CN113239297A CN202110268280.4A CN202110268280A CN113239297A CN 113239297 A CN113239297 A CN 113239297A CN 202110268280 A CN202110268280 A CN 202110268280A CN 113239297 A CN113239297 A CN 113239297A
- Authority
- CN
- China
- Prior art keywords
- message
- push
- pushing
- terminal
- template
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000013507 mapping Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 44
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种消息推送方法、***及存储介质,根据配置需求配置至少一个消息模板;接收推送请求,根据推送请求调整消息模板的推送消息结构;根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息;推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。本申请实现了简单、快捷的消息推送,基于Apollo配置的消息推送方法整体上,兼容原有功能接口的入参和出参,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
Description
技术领域
本申请属于数据处理技术领域,具体地,涉及一种消息推送方法、***及存储介质。
背景技术
随着APP功能的不断完善,越来越多新的业务场景需要添加App消息推送功能,来实现在该特定业务场景下给予用户通知提醒的需求。在目前看来,App消息推送已经涵盖了投保、批改、理赔、续保等保单服务业务,以及权益、账户管理、灾害测评等等其他的业务场景。在这种情况下,优化App消息推送功能,打造一个简单、通用、易用、高效的App消息推送框架将会给各类业务功能开发工作带来极大的便利。
目前,现有的消息通知方式,如微信提供的小程序订阅消息及公众号消息。这些消息框架由于使用对象是各种业务***的开发者,想使用新模板需要向微信提交申请,且不容易通过。另外,由于本身的模板格式有严格的控制,不同行业的小程序或公众号只能选择有限的模板,非常不方便。有新业务场景的需求需要考虑微信是否有提供可用的模板,若有支持,开发前还要额外到微信公众平台上配置,生产模板后取微信规定的随机模板id和字段格式,再根据这些模板内容进行开发,公众号还要额外再配置映射关系到UCP平台,十分不方便。
对于传统版本的App消息推送功能,由于之前一开始的设计方案跟目前需求有差异,当前的实现逻辑比较复杂,有很多冗余的逻辑。而且很多是通过代码硬编码方式实现的模板配置,一旦有需求需要新增消息模板,涉及到很多个类文件的修改,拓展性差,且对开发者十分不友好。
发明内容
本发明提出了一种消息推送方法、***及存储介质,旨在解决现有的消息推送过程复杂、拓展性差的缺点的问题。
根据本申请实施例的第一个方面,提供了一种消息推送方法,具体包括以下步骤:
根据配置需求配置至少一个消息模板;
接收推送请求,根据推送请求调整消息模板的推送消息结构;
根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息;
推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。
在本申请一些实施方式中,根据配置需求配置至少一个消息模板,具体包括:
根据配置需求配置消息模板的编号、消息标题、消息主体字段、点击消息需要跳转的跳转目标URL和/或消息附加字段。
在本申请一些实施方式中,接收推送请求,根据推送请求的推送参数,调整消息模板的推送消息结构之前,还包括根据推送请求进行请求预处理;根据推送请求进行请求预处理具体包括以下步骤:
预先设置推送方的黑、白名单以及推送终端的黑、白名单;
接收推送方的推送请求后,通过访问拦截获取推送方的访问密码,并验证访问密码;
访问密码验证通过后,获取推送方的身份ID,并与推送方的黑、白名单进行对比;若推送方的身份ID存在于推送方的白名单内,或推送方的身份ID不存在于推送方的黑名单内,则推送方具有推送消息权限;
获取推送方要推送的推送终端的用户ID,并与推送终端的黑、白名单进行对比,若推送终端的用户ID存在于推送终端的白名单内,或推送终端的用户ID不存在于推送终端的黑名单内,则推送终端具有接收推送消息的权限。
在本申请一些实施方式中,调取消息模板的消息内容,向推送终端发出推送消息之前,还包括:
确定推送终端的类型,根据推送终端的类型选择相应的推送服务,进行消息推送。
在本申请一些实施方式中,还包括:若推送状态为推送失败,则获取推送终端的消息接收时间段,将推送消息在相应的时间段内再一次进行消息推送,具体包括以下步骤:
获取推送终端的消息接收时间段;
根据消息接收时间段,设定第二次消息推送时间,并计时;
当到达第二次消息推送时间时,再次向推送终端进行消息推送。
在本申请一些实施方式中,还包括:将配置需求、消息模板以及推送终端预先建立映射关系,具体包括以下步骤:
获取配置方的配置需求,配置需求包括消息标题、消息主体字段和/或消息附加字段;
将配置需求、消息模板以及推送终端进行一一对应,建立映射关系;
当接收新的配置需求时,根据建立的映射关系,确定出配置需求对应的消息模板以及推送终端。
根据本申请实施例的第二个方面,提供了一种消息推送***,具体包括:
模板配置模块:用于根据配置需求配置至少一个消息模板;
消息调整模块:用于接收推送请求,根据推送请求调整消息模板的推送消息结构;
消息推送模块:用于根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息;
推送反馈模块:用于在推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。
在本申请一些实施方式中,模板配置模块根据配置需求配置至少一个消息模板,具体包括:
根据配置需求配置消息模板的编号、消息标题、消息主体字段、点击消息需要跳转的跳转目标URL和/或消息附加字段。
根据本申请实施例的第三个方面,提供了一种消息推送设备,包括:
存储器:用于存储可执行指令;以及
处理器:用于与存储器连接以执行可执行指令从而完成消息推送方法。
根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现消息推送方法。
采用本申请的消息推送方法、***及存储介质,根据配置需求配置至少一个消息模板;接收推送请求,根据推送请求调整消息模板的推送消息结构;根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息;推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。本申请实现了简单、快捷的消息推送,基于Apollo配置的消息推送方法整体上,兼容原有功能接口的入参和出参,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1中示出了根据本申请实施例的消息推送方法的步骤流程图;
图2中示出了根据本申请另一实施例的消息推送方法的步骤流程图;
图3中示出了根据本申请实施例的消息推送***的结构示意图;
图4中示出了根据本申请实施例的消息推送设备的结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现传统版本的App消息推送功能,由于之前一开始的设计方案跟目前需求有差异,当前的实现逻辑比较复杂,有很多冗余的逻辑。而且很多是通过代码硬编码方式实现的模板配置,一旦有需求需要新增消息模板,涉及到很多个类文件的修改,拓展性差,且对开发者十分不友好。
基于此,本申请的消息推送方案在整体上,兼容原有功能接口的入参和出参:虽然内部框架设计实现做出大改,但是功能保持不便,为了避免对以往接入App 消息推送功能的业务功能造成影响,接口的输入输出需要保持不变;因此,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
具体的,本申请的消息推送方法、***及存储介质,根据配置需求配置至少一个消息模板;接收推送请求,根据推送请求调整消息模板的推送消息结构;根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息;推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。
本申请基于Apollo配置中心实现消息模板动态配置:以往的App消息模板是通过硬编码方式在代码中编写的,添加新模板也是直接添加到代码中的。若有新增消息模板,需要在代码中添加新的模板格式,并将传参方式告知调用业务方,业务方再根据参数约定进行传参调用实现推送。改造优化后,消息模板都统一配置到Apollo配置中心的一个命名空间上,如果有新的功能需求需要添加新的模板格式,只需要调用方自己到Apollo上根据自己业务需要配置消息标题、内容格式、跳转链接、扩展参数,再根据自己配置进行传参调用即可,无需再对App消息推送框架代码做任何修改,大大提高开发效率。而且如果消息文案有调整,也可以直接通过修改Apollo配置的方式直接发布生产,无需修改代码走神兵版本流程发版,维护更加便捷。
本申请的消息模板内容传参支持内置函数。对于一些场景,可能需要使用特殊值作为模板内容的组装参数,如取当前时间等;或者需要对传入的参数做额外处理,如金额文本处理,添加币别、单位前后缀等。为了支持这种场景,新的App 消息框架支持在Apollo配置的模板中,配置上预置的内部函数。推送消息时,会根据配置用相应的函数进行处理,将处理结果添加到实际消息内容中。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
图1中示出了根据本申请实施例的消息推送方法的步骤流程图。
如图1所示,本申请的消息推送方法,具体包括以下步骤:
S101:根据配置需求配置至少一个消息模板。
其中,消息模板的消息标题、消息主体字段和/或附加字段通过动态参数和内置函数进行配置。
配置方每一次有消息推送需求时,都会对应一个具体的配置需求,根据配置需求进行消息模板的配置。
消息模板的配置内容具体包括:
(1)消息模板的编号;
(2)消息标题;
(3)消息主体字段的内容;
(4)点击消息需要跳转的跳转目标URL;
(5)其他需要入库的附加字段,比如不需要前端展示但后续需要使用到的字段,举例为:用于处理消息点击响应事件的参数,或者其他用于消息分类显示的参数等。
其中,消息标题、消息主体字段以及附加字段支持按照特定表达式配置的动态参数以及内置函数,动态参数如:#{paramName};内置函数如: f{funcName(#{paramName})}。
然后,通过动态参数和内置函数进行内容配置。具体的,进行消息标题、主体字段、附加字段取数转换,使用正则匹配解析Apollo配置内容中的动态参数和内置函数,将传参中对应参数名的字段值和内置函数的计算结果替换到配置内容中。
其中,消息标题配置时,优先取调用方传入的动态标题,再则取模板预先配置标题。
其中,关于跳转目标URL,优先取传参的URL,根据URL和跳转参数组装一个完整的跳转链接。
本申请基于Apollo配置中心,支持按照特定表达式配置的动态参数以及内置函数,首先,实现了消息模板动态配置,相比以往的App消息模板是通过硬编码方式在代码中编写的,若有新增消息模板,需要在代码中添加新的模板格式,本申请消息模板都统一配置到Apollo配置中心的一个命名空间上,只需要调用方自己到Apollo上根据自己业务需要配置消息标题、内容格式、跳转链接、扩展参数,再根据自己配置进行传参调用即可,无需再对App消息推送框架代码做任何修改,大大提高开发效率。其次,本申请的消息模板内容传参支持内置函数。对于一些场景,可能需要使用特殊值作为模板内容的组装参数,如取当前时间等;或者需要对传入的参数做额外处理,如金额文本处理,添加币别、单位前后缀等。为了支持这种场景,新的App消息框架支持在Apollo配置的模板中,配置上预置的内部函数。推送消息时,会根据配置用相应的函数进行处理,将处理结果添加到实际消息内容中。
S102:接收推送请求,根据推送请求调整消息模板的推送消息结构。
具体的,推送请求包括调整推送消息结构的推送参数。推送消息结构包括消息标题、消息主体字段以及消息附加字段是否推送,以及在推送消息中的顺序,还包括推送消息的总字符。
其中,推送参数包括单个推送、批量推送或者定向群体推送,推送参数还包括精简推送、全部推送以及字数限制推送等,根据不同的推送请求,调整推送消息结构,然后根据所配置的推送消息结构生成定制的推送消息并推送。
例如,若推送请求要求精简推送,则删除推送消息的消息附加字段,只推送消息标题或者消息主体内容。
若设定了字数限制,则按照消息附加字段、消息主体字段以及消息标题的顺序依次删减来达到要求。
S103:根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息。
配置好模板后,推送方发出消息推送请求;此时根据推送请求的推送参数调整推送消息结构,然后根据推送入口向推送终端推送消息。
推送请求包括消息模板编码以及推送终端的用户ID。其它可选的,还包括消息动态标题、动态参数值、附加参数、跳转URL及跳转所需参数等等。
其中,对于推送入口内部实现,首先是按照传入的模板编码,到Apollo配置中心拉取相应消息模板配置,再进行参数转换处理。
优选地,在消息推送之前,还包括:根据推送请求进行请求预处理。
具体的,请求预处理包括访问拦截、推送方安全校验、黑白名单设置和/或推送终端校验等。
可选流程的:
首先,预先设置推送方以及推送终端的黑名单以及白名单;
接收推送方的推送请求后,通过访问拦截,例如密码索取,若推送请求包括正确的密码,则通过验证;
接着对推送方的身份id与白名单进行对比,若推送方存在于白名单内,则推送方具有推送消息权限;可替代的,也可以将推送方的身份id与黑名单进行对比,若推送方不存在于黑名单内,则推送方具有推送消息权限;
最后,对推送终端的用户ID与白名单进行对比,若推送终端存在于白名单内,则推送终端具有接收推送消息权限;可替代的,也可以将推送终端的身份id与黑名单进行对比,若推送终端不存在于黑名单内,则推送终端具有接收推送消息的权限。
优选地,关于向推送终端推送消息时,还需要确定推送终端的类型,根据推送终端的类型选择相应的推送服务,进行消息推送。
例如,目前手机终端主流的类型包括ios终端以及Android终端,所以在推送消息前需要先判断推送请求的推送终端属于ios终端还是Android终端。
若属于ios终端,则启用ios消息推送服务进行消息推送;若属于Android 终端,则启用Android消息推送服务进行消息推送。
S104:推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。
其中,推送记录包括推送时间、推送终端等。
具体的,将包含推送方ID、消息模板编号以及推送终端的推送记录进行存储。
同时,检测消息推送状态,得到消息推送是否成功。
具体的,若消息推送失败,则获取推送终端的消息接收时间段,将所述消息在相应的时间段内再一次进行消息推送。
具体流程为:
1)获取推送终端的消息接收时间段;
2)根据消息接收时间段设定第二次消息推送时间,并计时;
3)当到达第二次消息推送时间时,再次根据推送入口将消息向推送终端进行推送。
因现在很多终端的app程序,会根据用户使用情况以及作息时间,调整免打扰时间段,或者针对某些app定制免打扰时间段,在免打扰时间内不接收任何通知、消息等,此时若进行消息推送,则造成推送失败,若在获取推送终端如app 程序设置的相应的免打扰时间段后,即可推算得到推送终端的消息接收时间段,大大增加了消息推送的成功率。
图2中示出了根据本申请另一实施例的消息推送方法的步骤流程图。
如图2所示,本申请的消息推送方法在步骤S104之后还包括步骤S105:将配置需求、消息模板以及推送终端预先建立映射关系。
同时,将预先建立映射关系的配置需求、消息模板以及推送终端以预设测试用例的形式配置在XML文件中。
相应的,在推送步骤S102中包括:从所述XML文件中调用所述预设测试用例向所述推送终端设备推送消息。
具体的处理流程为:
首选,获取配置方的配置需求,可包括消息内容、消息标题以及跳转目标URL 等信息。
然后,将配置需求、消息模板以及推送终端进行一一对应,建立映射关系。
其次,当接收新的配置需求时,根据建立的映射关系,确定出配置需求对应的消息模板以及推送终端;
最后,调用消息模板的推送入口,利用预先配置的消息模板向所述推送终端设备推送消息。
具体的,消息推送请求包括单条推送、批量推送、全网推送。其中,单条推送是指给用户推送一条消息。批量推送是指同时给多个用户进行推送消息,推送消息的数量有限制,本实施例一次最多推送30万条消息。全网推送是对安装所述指定APP的所有用户推送消息,例如:只要用户下载并打开过APP,就会向该APP 推送消息。
通过步骤S105,本申请能够根据消息平台不同类型的消息推送请求及预先建立的映射关系,在消息推送时,只需根据推送请求,可快速智能匹配消息推送的目标用户,不需再次进行S101-S104的步骤流程,提高了消息推送过程中推送的效率。
如图2所示,本申请实施例还包括步骤S106:对步骤101以及步骤105中的消息模板进行更新配置。
具体的,包括以下步骤:
一、获取模板配置更新的更新参数,并校验所述更新参数是否有效,所述更新参数包括推送入口、跳转目标URL、消息主体字段、推送终端ID或者每个配置格式对应的存储路径;
二、当所述更新参数有效时,将更新参数发送至配置端,更新配置需求。
三、根据预设的解析规则对所述配置信息进行内容编辑,以将所述配置信息转换成至少一配置格式;
四、将所述配置信息保存到每个配置格式对应的配置存储路径中,同时完成消息模板的更新。
本申请实施例通过步骤S106,相比现有的重新配置,减少了不必要的流程,提高了模板利用率以及消息推送效率。同时扩展了现有的配置方法的应用场景,提高消息推送的准确性。
本申请的消息推送方法,根据配置需求配置至少一个消息模板;接收推送请求,根据推送请求调整消息模板的推送消息结构;根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息;推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。本申请实现了简单、快捷的消息推送,基于Apollo配置的消息推送方法整体上,兼容原有功能接口的入参和出参,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
具体的,本申请具有以下有益效果;
1、本申请相比传统App消息推送功能,由于传统App消息推送实现逻辑比较复杂,有很多冗余的逻辑,且通过代码硬编码实现的模板配置可扩展性差,本申请实现了在支持原有功能的情况下,不需要在配置中心以外的平台,例如公众号、微信平台等进行额外再配置,去除了许多无用的逻辑代码,内部实现逻辑代码更加精简,代码行数减少为原来的二分之一,代码可读性也大大提高。
2、通过本申请的app消息推送方法,外部调用者,如果需要新增模板,不需要再去改动框架内部代码,仅需要按照本申请的消息推送方法到Apollo配置中心按照自身需求配置消息模板,再按照配置的模板传参调用推送接口,即可实现向推送终端推送消息。
3、通过本申请的app消息推送方法,若发布生产后,发现有需要更改消息模板的标题、内容文案,而只需要修改Apollo配置中的消息模板即可,降低了维护成本。
实施例2
本实施例提供了一种消息推送***,对于本实施例的消息推送***中未披露的细节,请参照其它实施例中的消息推送方法的实施内容。
图3中示出了根据本申请实施例的消息推送***的结构示意图。
如图3所示,本申请的消息推送***,包括模板配置模块10、消息调整模块 20、消息推送模块30以及推送反馈模块40。
具体的,
模板配置模块10:用于根据配置需求配置至少一个消息模板。
其中,消息模板的消息标题、消息主体字段和/或消息附加字段通过动态参数和内置函数进行配置。
具体基于Apollo配置中心进行配置;消息模板的配置内容包括消息模板编号、消息标题、消息主体字段、点击消息需要跳转的跳转目标URL和/或消息附加字段。
消息调整模块20:用于接收推送请求,根据推送请求调整消息模板的推送消息结构。
其中,推送参数包括单个推送、批量推送或者定向群体推送,推送参数还包括精简推送、全部推送以及字数限制推送等,根据推送参数的不同,可调整推送消息的内容。
例如,若推送请求要求精简推送,则删除推送消息的消息附加字段,只推送消息标题或者消息主体内容。
若设定了字数限制,则按照消息附加字段、消息主体字段以及消息标题的顺序依次删减来达到要求。
消息推送模块30:用于根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息。
配置好模板后,推送方发出消息推送请求;此时根据推送请求的推送参数调整推送消息结构,然后根据推送入口向推送终端推送消息。
推送请求包括消息模板编码以及推送终端的用户ID。其它可选的,还包括消息动态标题、动态参数值、附加参数、跳转URL及跳转所需参数等等。
其中,对于推送入口内部实现,首先是按照传入的模板编码,到Apollo配置中心拉取相应消息模板配置,再进行参数转换处理。
优选地,在消息推送之前,还包括:根据推送请求进行请求预处理。
具体的,请求预处理包括访问拦截、推送方安全校验、黑白名单设置和/或推送终端校验等。
可选流程的:
首先,预先设置推送方以及推送终端的黑名单以及白名单;
接收推送方的推送请求后,通过访问拦截,例如密码索取,若推送请求包括正确的密码,则通过验证;
接着对推送方的身份id与白名单进行对比,若推送方存在于白名单内,则推送方具有推送消息权限;可替代的,也可以将推送方的身份id与黑名单进行对比,若推送方不存在于黑名单内,则推送方具有推送消息权限;
最后,对推送终端的用户ID与白名单进行对比,若推送终端存在于白名单内,则推送终端具有接收推送消息权限;可替代的,也可以将推送终端的身份id与黑名单进行对比,若推送终端不存在于黑名单内,则推送终端具有接收推送消息的权限。
优选地,关于向推送终端推送消息时,还需要确定推送终端的类型,根据推送终端的类型选择相应的推送服务,进行消息推送。
例如,目前手机终端主流的类型包括ios终端以及Android终端,具体的,判断推送请求的推送终端属于ios终端或者Android终端。
若属于ios终端,则启用ios消息推送服务进行消息推送;若属于Android 终端,则启用Android消息推送服务进行消息推送。
推送反馈模块40:用于在推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。
其中,推送记录包括推送时间、推送终端等。
具体的,将包含推送方ID、消息模板编号以及推送终端的推送记录进行存储。
同时,检测消息推送状态,得到消息推送是否成功。
具体的,若消息推送失败,则获取推送终端的消息接收时间段,将所述消息在相应的时间段内再一次进行消息推送。
具体流程为:
1)获取推送终端的消息接收时间段;
2)根据消息接收时间段设定第二次消息推送时间,并计时;
3)当到达第二次消息推送时间时,再次根据推送入口将消息向推送终端进行推送。
优选地,本申请的消息推送***还包括映射模块,映射模块用于将配置需求、消息模板以及推送终端预先建立映射关系。
同时,将预先建立映射关系的配置需求、消息模板以及推送终端以预设测试用例的形式配置在XML文件中。
相应的,在推送步骤102中包括:从所述XML文件中调用所述预设测试用例向所述推送终端设备推送消息。
具体的处理流程为:
首选,获取配置方的配置需求,可包括消息内容、消息标题以及跳转目标URL 等信息。
然后,将配置需求、消息模板以及推送终端进行一一对应,建立映射关系。
其次,当接收新的配置需求时,根据建立的映射关系,确定出配置需求对应的消息模板以及推送终端;
最后,调用消息模板的推送入口,利用预先配置的消息模板向所述推送终端设备推送消息。
具体的,消息推送请求包括单条推送、批量推送、全网推送。其中,单条推送是指给用户推送一条消息。批量推送是指同时给多个用户进行推送消息,推送消息的数量有限制,本实施例一次最多推送30万条消息。全网推送是对安装所述指定APP的所有用户推送消息,例如:只要用户下载并打开过APP,就会向该APP 推送消息。
通过映射模块,本申请能够根据消息平台不同类型的消息推送请求及预先建立的映射关系,在消息推送时,只需根据推送请求,可快速智能匹配消息推送的目标用户,提高了消息推送过程中推送的效率。
优选地,本申请实施例还包括更新配置模块,更新配置模块用于对消息模板进行更新配置。
具体的,包括以下步骤:
一、获取模板配置更新的更新参数,并校验所述更新参数是否有效,所述更新参数包括推送入口、跳转目标URL、消息主体字段、推送终端ID或者每个配置格式对应的存储路径;
二、当所述更新参数有效时,将更新参数发送至配置端,更新配置需求。
三、根据预设的解析规则对所述配置信息进行内容编辑,以将所述配置信息转换成至少一配置格式;
四、将所述配置信息保存到每个配置格式对应的配置存储路径中,同时完成消息模板的更新。
本申请实施例通过更新配置模块,相比现有的重新配置,减少了不必要的流程,提高了模板利用率以及消息推送效率。同时扩展了现有的配置方法的应用场景,提高消息推送的准确性。
本申请的消息推送***,模板配置模块10根据配置需求配置至少一个消息模板;消息调整模块20接收推送请求,根据推送请求调整消息模板的推送消息结构;消息推送模块30根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息;推送反馈模块40推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。本申请实现了简单、快捷的消息推送,基于Apollo配置的消息推送方法整体上,兼容原有功能接口的入参和出参,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
实施例3
本实施例提供了一种消息推送设备,对于本实施例的消息推送设备中未披露的细节,请参照其它实施例中的车辆自动理赔定损方法或***具体的实施内容。
图4中示出了根据本申请实施例的消息推送设备400的结构示意图。
如图4所示,消息推送设备400,包括:
存储器402:用于存储可执行指令;以及
处理器401:用于与存储器402连接以执行可执行指令从而完成基于模板生成 PDF的电子签章方法。
本领域技术人员可以理解,所述示意图4仅仅是消息推送设备400的示例,并不构成对消息推送设备400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如消息推送设备400还可以包括输入输出设备、网络接入设备、总线等。
所称处理器401(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器401也可以是任何常规的处理器等,处理器401是消息推送设备400的控制中心,利用各种接口和线路连接整个消息推送设备400的各个部分。
存储器402可用于存储所述计算机可读指令,处理器401通过运行或执行存储在存储器402内的计算机可读指令或模块,以及调用存储在存储器402内的数据,实现消息推送设备400的各种功能。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据消息推送设备400 使用所创建的数据等。此外,存储器402可以包括硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)或其他非易失性 /易失性存储器件。
所述消息推送设备400集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现其他实施例中的消息推送方法。
采用本申请实施例中的消息推送设备及存储介质,根据配置需求配置至少一个消息模板;接收推送请求,根据推送请求调整消息模板的推送消息结构;根据调整后的推送消息结构,生成推送消息,向推送终端发出推送消息;推送消息发出后记录推送记录,并检测推送消息是否成功推送的推送状态。本申请实现了简单、快捷的消息推送,基于Apollo配置的消息推送方法整体上,兼容原有功能接口的入参和出参,在以往已经应用的业务功能不受影响基础上,实现了简单、快捷的消息推送。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/ 或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种消息推送方法,其特征在于,具体包括以下步骤:
根据配置需求配置至少一个消息模板;
接收推送请求,根据所述推送请求调整所述消息模板的推送消息结构;
根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息;
所述推送消息发出后记录推送记录,并检测所述推送消息是否成功推送的推送状态。
2.根据权利要求1所述的消息推送方法,其特征在于,所述根据配置需求配置至少一个消息模板,具体包括:
根据配置需求配置消息模板的编号、消息标题、消息主体字段、点击消息需要跳转的跳转目标URL和/或消息附加字段。
3.根据权利要求2所述的消息推送方法,其特征在于,所述接收推送请求,根据所述推送请求调整所述消息模板的推送消息结构之前,还包括根据推送请求进行请求预处理;所述根据推送请求进行请求预处理具体包括以下步骤:
预先设置推送方的黑、白名单以及推送终端的黑、白名单;
接收推送方的推送请求后,通过访问拦截获取推送方的访问密码,并验证所述访问密码;
访问密码验证通过后,获取所述推送方的身份ID,并与推送方的黑、白名单进行对比;若推送方的身份ID存在于所述推送方的白名单内,或推送方的身份ID不存在于推送方的黑名单内,则推送方具有推送消息权限;
获取推送方要推送的推送终端的用户ID,并与推送终端的黑、白名单进行对比;若推送终端的用户ID存在于推送终端的白名单内,或推送终端的用户ID不存在于推送终端的黑名单内,则推送终端具有接收推送消息的权限。
4.根据权利要求1所述的消息推送方法,其特征在于,所述调取所述消息模板的消息内容,向推送终端发出推送消息之前,还包括:
确定所述推送终端的类型,根据所述推送终端的类型选择相应的推送服务,进行消息推送。
5.根据权利要求1所述的消息推送方法,其特征在于,所述推送消息发出后记录推送记录,并检测所述推送消息是否成功推送的推送状态之后,还包括:若所述推送状态为推送失败,则获取所述推送终端的消息接收时间段,将所述推送消息在相应的时间段内再一次进行消息推送,具体包括以下步骤:
获取所述推送终端的消息接收时间段;
根据所述消息接收时间段,设定第二次消息推送时间,并计时;
当到达所述第二次消息推送时间时,再次向所述推送终端进行消息推送。
6.根据权利要求1所述的消息推送方法,其特征在于,所述推送消息发出后记录推送记录,并检测所述推送消息是否成功推送的推送状态之后,还包括:将配置需求、消息模板以及推送终端预先建立映射关系,具体包括以下步骤:
获取配置方的配置需求,所述配置需求包括消息标题、消息主体字段和/或消息附加字段;
将所述配置需求、消息模板以及推送终端进行一一对应,建立映射关系;
当接收新的配置需求时,根据所述建立的映射关系,确定出所述配置需求对应的消息模板以及推送终端。
7.一种消息推送***,其特征在于,具体包括:
模板配置模块:用于根据配置需求配置至少一个消息模板;
消息调整模块:用于接收推送请求,根据所述推送请求调整所述消息模板的推送消息结构;
消息推送模块:用于根据调整后的所述推送消息结构,生成推送消息,向推送终端发出所述推送消息;
推送反馈模块:用于在所述推送消息发出后记录推送记录,并检测所述推送消息是否成功推送的推送状态。
8.根据权利要求7所述的消息推送***,其特征在于,所述模板配置模块根据配置需求配置至少一个消息模板,具体包括:
根据配置需求配置消息模板的编号、消息标题、消息主体字段、点击消息需要跳转的跳转目标URL和/或消息附加字段。
9.一种消息推送设备,其特征在于,包括:
存储器:用于存储可执行指令;以及
处理器:用于与所述存储器连接以执行所述可执行指令从而完成权利要求1-6中任一项所述的消息推送方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;计算机程序被处理器执行以实现如权利要求1-6任一项所述的消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110268280.4A CN113239297A (zh) | 2021-03-12 | 2021-03-12 | 消息推送方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110268280.4A CN113239297A (zh) | 2021-03-12 | 2021-03-12 | 消息推送方法、***及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113239297A true CN113239297A (zh) | 2021-08-10 |
Family
ID=77130214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110268280.4A Pending CN113239297A (zh) | 2021-03-12 | 2021-03-12 | 消息推送方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239297A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448968A (zh) * | 2021-12-15 | 2022-05-06 | 广州市玄武无线科技股份有限公司 | 推送量校验方法和装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107465759A (zh) * | 2017-09-07 | 2017-12-12 | 武汉楚鼎信息技术有限公司 | 一种消息服务器、消息下发方法以及终端 |
CN107645524A (zh) * | 2016-07-21 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种消息推送处理方法以及装置 |
CN108768837A (zh) * | 2018-05-31 | 2018-11-06 | 中国建设银行股份有限公司 | 消息处理方法及相关装置 |
CN110149363A (zh) * | 2019-04-15 | 2019-08-20 | 深圳壹账通智能科技有限公司 | 一种消息推送方法、装置及存储介质 |
CN110519711A (zh) * | 2019-06-26 | 2019-11-29 | ***通信集团江西有限公司 | 一种消息推送方法、装置、存储介质和服务器 |
-
2021
- 2021-03-12 CN CN202110268280.4A patent/CN113239297A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645524A (zh) * | 2016-07-21 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种消息推送处理方法以及装置 |
CN107465759A (zh) * | 2017-09-07 | 2017-12-12 | 武汉楚鼎信息技术有限公司 | 一种消息服务器、消息下发方法以及终端 |
CN108768837A (zh) * | 2018-05-31 | 2018-11-06 | 中国建设银行股份有限公司 | 消息处理方法及相关装置 |
CN110149363A (zh) * | 2019-04-15 | 2019-08-20 | 深圳壹账通智能科技有限公司 | 一种消息推送方法、装置及存储介质 |
CN110519711A (zh) * | 2019-06-26 | 2019-11-29 | ***通信集团江西有限公司 | 一种消息推送方法、装置、存储介质和服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448968A (zh) * | 2021-12-15 | 2022-05-06 | 广州市玄武无线科技股份有限公司 | 推送量校验方法和装置、电子设备、存储介质 |
CN114448968B (zh) * | 2021-12-15 | 2023-01-10 | 广州市玄武无线科技股份有限公司 | 推送量校验方法和装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814856B (zh) | 数据录入方法、装置、终端及计算机可读存储介质 | |
US8064583B1 (en) | Multiple data store authentication | |
CN111866769B (zh) | 一种消息发送方法、装置、服务器及介质 | |
CN102752326B (zh) | 在下载文件时处理数据的方法、服务器和*** | |
US10467066B2 (en) | System and method for establishing common request processing | |
CN101305555B (zh) | 使用元数据的多媒体中间件装置和用于控制多媒体中间件的方法 | |
CN109117609B (zh) | 一种请求拦截方法及装置 | |
CN110413528B (zh) | 测试环境智能配置方法及*** | |
CN106649638B (zh) | 一种大数据获取方法 | |
CN113076502A (zh) | 一种基于请求标识的参数控制方法与*** | |
CN112615753A (zh) | 一种链路异常追踪方法、第一节点、第二节点以及链路 | |
CN107861765B (zh) | 产品配置方法、设备和计算机可读存储介质 | |
CN113239297A (zh) | 消息推送方法、***及存储介质 | |
CN113485952A (zh) | 数据批量传输方法及装置 | |
CN112559124A (zh) | 一种模型管理***以及目标操作指令的处理方法和装置 | |
CN112507668A (zh) | 项目数据存证方法、存证***、终端设备及可读存储介质 | |
CN112260933A (zh) | 通信的方法、装置、电子设备及介质 | |
CN112116339A (zh) | 资金全链路控制校验方法及装置 | |
CN112132671A (zh) | ***信息采集方法、装置、计算机设备和存储介质 | |
CN111464618A (zh) | 一种消息推送方法、装置、设备和存储介质 | |
CN109343880B (zh) | 一种rn包更新方法、装置及可读存储介质 | |
CN105141586A (zh) | 一种对用户进行验证的方法和*** | |
CN113347033B (zh) | 基于区块链的根因定位方法、***及验证节点 | |
WO2017143931A1 (zh) | 智能卡识别的方法及识别数据的处理方法、装置、设备 | |
CN101534317B (zh) | 一种服务器、手机终端及获取手机电话号码的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |