微信公众平台可以做什么?(上PP,求懂!)
什么是sophia?
Sophia是一个为方便开发基于微信公众平台应用程序的框架,类似于开发web应用的struts。Sophia将微信用户回复的内容解析成各种指令以便app能识别和响应用户的请求,实现公众帐号的智能回复。
为什么要开发sophia这个框架?
虽然微信公众平台提供了很简单的API,但毕竟调用这些api还有很多繁琐、通用的逻辑要处理。如果能把这些共性的东西交给一个框架来处理,那么开发微信公众平台就方便很多了。
Sophia的主要特性:
1、将微信用户输入的文本转换为命令;
2、管理微信用户和第三方应用的Session;
3、支持基于命令行的编辑模式和查询模式
4、内置命令帮助查看功能;
5、内置查询命令的上一页、下一页功能;
6、支持字母(不区分大小写)、中文作为指令
7、注重扩展性
8、非常方便嵌入到web应用中
9、支持文本、菜单事件响应
10、统一文本、菜单等消息的统一处理
其他:
1、Sophia支持菜单模式!
2、为什么命名为sophia?LP的洋名而已。
Sophia设计(下图非最新)
提示:上图沿左上角的箭头开始看。
SophiaServlet是整个框架的入口,
1、负责接收微信平台的请求
2、认证请求的合法性
3、解析微信平台POST过来的xml
MessageProcessorFactory根据配置文件,初始化消息处理器(MessageProcessor对象),并且提供根据请求获取处理器的方法。
MessageProcessor(消息处理器接口)负责提供命令解析器和会话管理。
SessionManager(会话管理器)负责管理微信用户的会话状态,目前只支持内存管理,如用户较多建议自行实现数据库来管理。
CommandParsed(命令解析器接口)拥有命令(TextCommand)对象及其代码的映射关系。
TextCommand(微信文本命令接口),代表公众帐号响应微信用户回复的动作。拥有命令代码、命令别名、待执行方法的接口。
RequestMessage,代表微信平台的对Sophia的请求信息;
ResponseMessage,代表Sophia对微信平台的响应信息,此接口有一个xml()方法,用于为SophiaServlet返回给微信公众平台要求的xml格式数据;
最后
Sophia也许不能算作一个框架,但它却帮助我们处理了很多东西。不管怎么样,希望对开发微信平台的第三方开发者在程序设计中有一点参考意义罢了。