关闭

简单介绍一下微信公众号的开发流程

2229人阅读 评论(0) 收藏 举报
分类:

很多朋友对微信公众号的智能回复等功能比较感兴趣,在这篇文章中,我简单的跟大家介绍下微信公众号的开发及数据交互流程,让大家至少能大概了解微信开发是怎么一回事。

首先,微信公众号分两种类型和两种情况,两种类型分别是订阅号和服务号,两种情况是,已认证或未认证的订阅号。他们分别具体的接口权限大家可以在微信后台的“开发者中心-接口权限”看到。

如下图所示是我的接口权限:

以上显示“未获得”的接口状态,就是需要订阅号或服务号微信认证之后才有拥有的权限。

简单说,未认证的订阅号只有基础支持、自动回复和发送回复消息的接口,只有实现一些较简单的数据交互功能,例如本公众号(需要特别说明一下,本公众号也是未认证的订阅号,关于自定义菜单是一个微博关联认证的历史遗留问题,除此之外所有权限与普通未认证的订阅号一样)


那么,什么是接口?微信接口又是什么意思?

打个比方,如果一家公司是一个系统,创业之初,你可能一个人身兼多职,同时负责营销、财务、研发等,发展到了一定规模后为了提高公司整体的运行效率和服务水平,你就需要聘用不同的人才来帮你承担相应的一部分工作,那么同时,你也需要向这部分人提供对应的工作权限以满足他们的工作需要,这就类似于接口的概念。


微信接口简单说,是微信公众平台向第三方开发者提供的一个用户资源数据及功能的访问/使用权限。通过对开发者提供开放统一的API接口环境,来帮助微信第三方开发者访问微信公众平台的功能和资源,以达到充分自由的运用微信公众平台用户资源及功能的目的。

在微信上,要实现这一目的,需要开启“服务器配置”如下图所示:

如图所示:大家需要注意的是,一旦开启了服务器配置,微信平台自带的自动回复、自定义菜单等功能全部失效,所有的事件推送都会被转发到你所配置的服务器地址URL上。

简单解释下开发者ID和服务器配置各参数的作用:

AppID是应用ID,也就是微信开发者编号的意思,在微信中主要用于创建微信菜单等。

AppSecret是应用密匙,与AppID是相配合的,意思可理解为这是私密的应用编号。

URL服务器地址是微信服务器像开发者服务器推送消息和事件的地址,可理解为你家的住址。这里没什么特别要求,无论你使用什么语言开发,只要能通过HTTP服务的80端口返回符合微信要求的XML信息即可。

Token令牌可理解为用来验证安全接头暗号,让微信服务器知道对方就是我要找的人。

EncodingAESKey可理解为暗语加密交流,以免你与用户之间的交互信息被第三方获取到后泄露敏感数据。

梳理下过程,当微信用户给你的微信公众号发送消息后,消息到达微信服务器被处理成XML数据包并转发给开发者服务器(URL),开发者服务器接收到数据包后就会把用户消息经过一系列的逻辑处理并再转送给微信服务器,最后微信服务器再推送给用户。

数据交互的流程:用户发送消息—到达微信服务器—转发给开发者服务器—转送微信服务器—推送给用户

看到这里,相信大家已经知道,微信公众号的开发关键流程在开发者服务器处理用户信息这一步上,至于这一步怎么做,那就是一个大话题了。

相比而言,微信开发是很简单的,将用户消息处理成符合微信要求的XML数据包结构即可,因此开发重心全在逻辑处理上面。

如下图所示,这是一个最基础的文本消息XML结构:

上图中Content就是返回给用户的消息内容,是一个变量。

下面是我用一款工具模拟用户发送消息给服务器的交互情况:

(微信开发调试工具:http://api.huceo.com/weixin/debug/


那么,怎么能拥有智能回复、人脸识别、微信点歌等等功能,这就需要借助第三方的API或者数据采集来实现,当开发者服务器接收到用户消息后,处理成符合对方API使用规则的请求,拿到JSON数据取出需要的内容经过一系列的处理返回给用户即可。

如下图所示某API接口笑话数据的示例(这是最简单的一种结构):

最后,这篇文章仅仅是让大家大概了解下微信公众号的开发流程。作为微信运营者,该如何使用微信的各种高级功能?如果你是真正想把微信自媒体做好的话,不好有没有技术,我的建议是用第三方平台。

毕竟一些知名的第三方平台都是公司团队在开发,各种营销功能丰富,安全稳定性方面也有保障,大家可自行百度一下。


开发平台建议使用新浪云SAE,邀请注册地址:http://t.cn/R40C6aD ,除了一定的免费额度外,新用户首次注册可获得200云豆奖励,首次充值可获得600云豆奖励。


2
0
查看评论

简单介绍一下AjAx

文章原地址:http://blog.sina.com.cn/s/blog_7fabe7e20102x3cr.html 什么是AjAx? 异步的javascript和xml。 作用是什么? 通过AjAx与服务器进行数据交换,AjAx可以使用网页实现布局更新。 这意...
  • yong_csdn
  • yong_csdn
  • 2017-09-05 09:43
  • 151

Hibernate简单介绍

. Hibernate介绍:      Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从java类到数据库表之间的映射,也提供了数据查询和...
  • clypm
  • clypm
  • 2014-03-20 11:07
  • 1548

Solr简单介绍

简介  Solr是一个高性能,采用Java5开发,Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。工作方式 ...
  • u010926964
  • u010926964
  • 2016-06-29 15:10
  • 3166

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会。希望大家能够多多指正。  2.Spring简单介绍 上图是有关Spring的整个架构图,从图中我们可以看出,Spring主要包括AOP、数据访问...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015-08-09 22:00
  • 1523

AOP简单介绍

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。  当我们需要为分散的对象...
  • u010926964
  • u010926964
  • 2016-05-30 15:29
  • 5231

Shiro 简单介绍

Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro 要简单的多。因为它相当简单,对比 Spring Security,可能没有 Spring Sec...
  • qwssd
  • qwssd
  • 2017-08-22 21:14
  • 108

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架      MyBatis的前身叫iBatis,本是apache的一个开源...
  • u013045959
  • u013045959
  • 2016-09-16 14:11
  • 1469

Spring框架(一)简单介绍

Spring是一个轻量级框架,可以一站式构建你的企业级应用。 Spring作为Javaee开发技能不可或缺的一项,是每一个做Javaee开发的人必须要掌握的。现在最新的Spring已经到5.0的体验版了,不过做技术的人都知道,在一个实际的项目中最好还是使用成熟稳定的版本,所以本片文章以当前最近的稳定...
  • muyi_amen
  • muyi_amen
  • 2016-12-28 18:06
  • 544

Java简单介绍

Java的三个版本:        Java SE:标准版,各应用平台的基础        Java EE:企业版,以企业为环境而开发应用程序的解决方案   &...
  • elibrace
  • elibrace
  • 2016-01-27 08:42
  • 2178

简单介绍 dubbo

Dubbo是一个开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合;从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)...
  • u014266877
  • u014266877
  • 2017-01-19 09:45
  • 299
    个人资料
    • 访问:3011165次
    • 积分:35189
    • 等级:
    • 排名:第144名
    • 原创:243篇
    • 转载:517篇
    • 译文:22篇
    • 评论:119条
    最新评论