为什么要写这个文章?
1、前两天想到阿里来往注册一个公众号,但发现来往公众平台做的不是一般的烂!注册需要填写excel并发邮件申请,而且申请条件不是一般的苛刻,我的神!
2、看不惯腾讯的霸王条款、服务质量差(动不动屏蔽第三方自动回复)。
3、本来找个朋友基于微信平台创业,发现自己不是创业的料。
微信公众平台可以做什么?(上PP,求懂!)
什么是sophia?
Sophia是一个为方便开发基于微信公众平台应用程序的框架,类似于开发web应用的struts。 Sophia将微信用户回复的内容解析成各种指令以便app能识别和响应用户的请求,实现公众帐号的智能回复。
Sophia的主要特性:
1、将微信用户输入的文本转换为命令;
2、管理微信用户和第三方应用的Session;
3、支持基于命令行的编辑模式和查询模式
4、内置命令帮助查看功能;
5、内置查询命令的上一页、下一页功能;
6、支持字母(不区分大小写)、中文作为指令
7、注重扩展性
8、非常方便嵌入到web应用中
其他:
1、Sophia支持菜单模式!
2、为什么命名为sophia?LP的洋名而已。
Sophia设计
提示:上图沿左上角的箭头开始看。
SophiaServlet是整个框架的入口,
1、负责接收微信平台的请求
2、认证请求的合法性
3、解析微信平台POST过来的xml
MessageProcessorFactory根据配置文件,初始化消息处理器(MessageProcessor对象),并且提供根据请求获取处理器的方法。
MessageProcessor(消息处理器接口)负责提供命令解析器和会话管理。
SessionManager(会话管理器)负责管理微信用户的会话状态,目前只支持内存管理,如用户较多建议自行实现数据库来管理。
CommandParsed(命令解析器接口)拥有命令(TextCommand)对象及其代码的映射关系。
TextCommand(微信文本命令接口),代表公众帐号响应微信用户回复的动作。拥有命令代码、命令别名、待执行方法的接口。
RequestMessage,代表微信平台的对Sophia的请求信息;
ResponseMessage,代表Sophia对微信平台的响应信息;
给阿里来往一点建议
1、不要和微信正面竞争;
2、重点建设公众平台;
3、和第三方开发者建立良好的互动关系;
4、降低门槛,方便开发者基于公众平台建立第三方应用,占领公众服务大厅(医院、银行等);
5、提高公众平台在客户端的操作体验
最后
Sophia也许不能算作一个框架,但它却帮助我们处理了很多东西。不管怎么样,希望对开发微信平台的第三方开发者在程序设计中有一点参考意义罢了。
应用Sophia开发的微信公众帐号案例,想体验的可以关注一下:
相关推荐
3. 微信公众平台开发之Struts2 (免费) 25:31 4. 微信公众平台开发之Spring MVC 27:12 5. 识别微信浏览器 24:40 6. 限制只允许微信浏览器访问 23:30 7. 一套程序服务多个账号---原始ID 17:46 8. 一套程序服务多个账号...
创建微信服务地址(微信公众平台中配置的自己服务器地址)servlet类。如果是springmvc则创建对应的controller,如果是struts则创建对应的action类。servlet类示例如下: ```java protected void doGet...
这是一个基于Java 7的微信公众账号服务系统。 我们为@fduxxb微信帐户正式建立了这个项目,最后我们决定向公众开放,我们认为这将有助于使用Java的人员,尤其是大学和校园中的人员。 我们要感谢MongoDB,Struts2和...
随着信息技术的迅速发展,网络报修系统已经成为日常生活中不可或缺的一部分,尤其在办公环境和公共设施管理中扮演着重要角色。传统的Web端和移动客户端报修系统往往存在开发周期长、耦合度高、用户体验不佳等问题。...
随着信息技术的迅速发展,网络报修系统已经成为日常生活中不可或缺的一部分,尤其在办公环境和公共设施管理中扮演着重要角色。传统的报修方式,如Web端或移动客户端,往往存在开发周期长、耦合性强、用户使用不便等...
3. 资源预约:例如公共设施的预约,如洗衣房、会议室等。 4. 报修系统:学生可以提交报修申请,管理员进行处理。 5. 数据统计与分析:对宿舍情况、资源使用情况进行统计和报表展示。 在实现过程中,后端可能采用了...
企业电子商城是一个基于JSP(JavaServer Pages)技术构建的在线购物平台,它结合了SQLSERVER2000作为后台数据库管理系统以及STRUTS1.2框架进行业务逻辑控制。这个系统的设计和实现涵盖了多个关键知识点,对于理解和...
本设计旨在利用微信小程序这一便捷的移动平台,开发一个社区垃圾回收管理系统,以提高垃圾处理效率和居民参与度。 1.2 国内外相关设计现状 国内互联网+废品回收的发展,催生了各种基于小程序的废品回收服务,它们...
Struts2是一个强大的MVC框架,它提供了丰富的标签库,简化了视图层的开发。以下将详细解析这些标签的使用方法。 1. `<s:textfield>`:用于创建文本输入框,`name`属性指定实体Bean的属性名称,如`...
Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加便捷地构建Web应用的用户界面。以下是对Struts2标签库中部分重要标签的详细解释: 1. `<s:textfield>`:用于创建文本输入框。通过`name`属性...
6. **微信小程序**: 鉴于移动端的普及,项目可能还涉及到微信小程序的开发,这是一种轻量级的应用开发平台,允许开发者在微信生态系统内创建交互式用户体验,为党务政务服务提供便捷的移动端入口。 7. **微服务架构...
目前已经广泛应用于移动开发,电商平台,微信公众平台等领域。它完全能胜任和满足大中型平台站点的需求。其中CMS只起到一个抛砖引玉的作用,基于此框架和我的CMS系统上,可以解决移动APP后台服务、多媒体信息、O2O、...
“微信服务号开发”则指的是利用微信的公众服务平台为企业创建服务号,以提供产品信息、客户服务、在线交易等功能。微信服务号允许企业与大量用户进行互动,推送消息,接收用户反馈,从而增强品牌形象,拓展业务渠道...
【描述】:这个项目描述表明,系统旨在实现一个疫苗预约服务,可能是针对公众的在线预约平台。SpringBoot的使用确保了系统的快速开发和稳定运行,同时结合Java的强大功能,可以构建出高效、可扩展的后台服务。 ...
目前已经广泛应用于移动开发,电商平台,微信公众平台等领域。它完全能胜任和满足大中型平台站点的需求。其中CMS只起到一个抛砖引玉的作用,基于此框架和我的CMS系统上,可以解决移动APP后台服务、多媒体信息、O2O、...
支付接口集成可能需要与第三方支付平台如支付宝、微信支付进行API对接。 【源代码和数据库】 提供的源代码和数据库文件是实现上述系统的具体实现。开发者可以通过分析源代码学习到实际项目中的编程技巧、架构设计...
首先,Java作为系统开发的编程语言,具备跨平台性、稳定性和丰富的库支持,是开发大型分布式应用的理想选择。Java的面向对象特性使得系统模块化设计更为方便,易于维护和扩展。该系统可能采用了MVC(Model-View-...
这个项目旨在通过先进的Web技术,为一家电子商品销售公司提供一个展示企业形象、推广产品和服务的平台,从而提高品牌知名度和销售业绩。 【描述】:“某电子商品销售公司为了提升企业形象和商品销售量,决定开发一...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...