第1章微信公众平台介绍
最近这段时间,在任何时候打开任意一个IT媒体,都能在显著位置看到关于微信公众平台的文章,无论是稍有历史的CSDN、51CTO和ITEYE,还是新兴的36Kr、雷锋网、虎嗅和钛媒体等。这些媒体都第一时间在微信上注册了公众账号进行新闻推送,相信不少读者也关注了一些。不管这些关于微信公众平台的文章是软文还是“小编”或网友所写的文章,可以肯定的一点是,微信公众平台是非常引人关注的。相信很多人都想基于公众平台做一些事情,都呈跃跃欲试状。但是当你阅读这些文章,希望从中学到一些自己需要的知识时却会发现,其中大部分都是谈前途、谈看法,有实际指导性意义的非常少。这也不能怪这些文章的作者,因为他们自己应该也不太清楚要怎么做。新事物出现的时候人们总是这种状态,觉得前途一片光明,但是大部分人不知道从哪里走出第一步。在笔者看来,作为开发者,拥抱变化,并写下关于新事物的第一行代码就是我们的第一步。本章是为写下第一行代码做的准备工作。
2013年10月24日,微信的注册用户突破6亿,日活跃用户1亿。这距离微信发布第一个版本的2011年1月21日仅有不到2年的时间。海量的用户蕴藏着巨大的营销和推广价值。2012年8月17日,微信推出了公众平台,为个人和企业带来了一个新的机会。通过这一平台,个人和企业都可以打造一个微信公众账号,并实现和特定群体的文字、图片、语音的全方位沟通、互动。
和企业微博相比,微信公众账号具有如下两个重要特点:
微信公众账号更注重私密性。订阅者和公众账号的交流是私密的,不像企业微博那样,所有的粉丝都看得到你的评论和转播。
微信公众账号更注重和订阅者的交流,而企业微博更注重信息的传播。
从公众账号和订阅者交流方式的角度来看,微信公众平台有三大功能:
群发消息。公众账号每天可以向订阅者群发一定量的消息。
使用编辑模式中的自定义回复消息功能,公众账号可以自定义一些消息回复规则。
使用开发模式,公众账号的维护者可以开发自己独特的业务逻辑来分析订阅者的消息,并反馈给订阅者。这个功能给了公众账号最大的自由度,可以极大地扩展公众账号的能力。
结合公众平台的特点和功能,公众账号可以有以下使用方法:
企业移动门户。订阅者可以通过企业账号获取最新的优惠和活动,例如“好乐迪KTV”、“百果园”、“海岸城”等公众账号都属于这一类。
新闻资讯。微信自带的“腾讯新闻”以及“雷锋网”、“36Kr”等都属于这一类。用户订阅这些账号是为了看新闻。
娱乐。“糗事百科”、“百思不得姐”以及本书中将要介绍的“meiri10futu”账号就属于这一类。
社交应用。“校园爱情”、“错过的他”属于这一类,这类应用都还不太成熟,使用起来还不是很方便。主要原因是微信还没有开放获取用户信息的API。本书中的“findface”是这类应用的一个尝试。
游戏。这类应用大多是发送一个链接给用户,实际运行还是在浏览器中,没有用到微信公众平台的特性。这种模式被认为是微信公众平台和HTML 5的结合点。“爱屁屁”就是这种类型中的一个。非内嵌连接的游戏还很少,本书中的“命运左轮”是非内嵌链接游戏的一个尝试。
也许大家注意到了,这些账号都很生活化。那些微博中人气非常高的名人不在此列。这让我想起了两句非常有意思的话,可以形象地总结出微博和微信的区别:“微博一打开,看到一群公知在忧国忧民,感觉世界好黑暗。微信朋友圈一打开,看到一群朋友在吃喝玩乐,感觉世界好阳光。”也许读者会发现自己平时遇到的一些账号在这里都没有列出来,这并不奇怪,因为公众账号的使用方式还在不断探索之中。也许那个最有效,最受欢迎的公众账号会出自你手,谁说得准呢?
本章是一个介绍性的章节,会覆盖微信公众账号的注册、认证,编辑模式中自动回复和自定义菜单的使用。如果读者已经了解了这些知识,可以直接跳过本章。
1.1微信公众账号的注册
登录https://mp.weixin.qq.com/ 或者是在各大搜索引擎网站上搜索“微信公众平台登录”,都可以找到公众账号的主页,如图1-1所示。
. 图1-1微信公众账号主页
提示公众账号目前没有专门的修改密码功能,如果需要修改密码,可以单击图1-1中所示的“无法登录”进行密码重置。
进入该主页之后,在右上角很醒目的位置会看到“立即注册”的链接,单击该链接之后进入图1-2所示的注册页面。在该注册页面的上方可以看到公众号的注册分为基本信息、邮箱激活、信息登记、选择类型和公众账号信息等5步。接下来我们按照这5步来逐一说明。
图1-2公众账号注册:基本信息
1.1.1基本信息
在“基本信息”中,又包含了如下选项。
邮箱:这里要填写你的邮箱,这个邮箱账号以后将作为你登录微信公众平台的账号。
密码:填写你希望的密码,此密码以后将作为你登录微信公众平台的密码。
确认密码:重复输入上边设置的密码。
验证码:图片中的验证码。
勾选“我同意并遵守《腾讯公众平台服务协议》”,然后单击“注册”按钮,就可以进入邮箱激活的步骤了。
1.1.2邮箱激活
邮箱激活界面如图1-3所示。
图1-3公众账号注册:邮箱激活
这时微信服务器已经向你在基本信息步骤中填写的电子邮箱发送了一封邮件,供你来激活公众平台账号。这时请登录你的邮箱,找到那封邮件,如图1-4所示。
图1-4公众账号注册:邮箱激活
单击邮件中的链接,会跳转到图1-5所示的信息登记网页上,这时表示已经通过邮箱完成了激活,可以来完成信息登记了。
图1-5公众账号注册:信息登记
1.1.3信息登记
这里需要选择运营主体是组织还是个人。首先,当运营主体为组织的时候,我们可以选择创建订阅号或服务号。如果运营主体为个人的时候,只能创建订阅号。接下来先对服务号和订阅号做一个简单的介绍,然后读者可以根据自己的情况做选择。
1. 订阅号和服务号
针对面向的运营者不同,订阅号和服务号各有优劣势。表1-1比较了订阅号和服务号的不同。
表1-1订阅号和服务号的比较
群发功能 自定义菜单 认证 高级接口
订阅号 每天一次 可以申请 可关联微博认证 不可以申请
服务号 每月一次 可以申请 可以微信申请 可以申请
群发功能是指向所有订阅此公众账号的用户发送一条消息,可以是图文消息(如图1-6所示),也可以是文本消息(如图1-7所示)。微信限制了服务号的群发频率,如果想要建设的账号需要频繁地推送消息给用户,建议选择订阅号。服务号的优势在于可以申请自定义菜单和高级接口,使用这些功能,结合开发模式,可以把公众账号打造成一个功能强大的手机端应用。服务号在通过微信认证之后有了自定义菜单和高级接口,订阅号在粉丝数达到500后关联微博认证,也可以获得自定义菜单。
使用自定义菜单可以自定义一个三乘五的按钮矩阵,如图1-8所示。在自定义菜单中可以设置这些按钮的名称,并赋予这些按钮你想要的功能,比如返回一条消息、打开一个网页,或者在后台程序中触发一个事件等。自定义菜单的强大之处不仅是在一定程度上取代了传统的App客户端,更表现在提高了用户的使用体验。
微信认证是一个完整的认证体系,提供安全、严格的真实性认证,这能够更好地保护企业及用户的合法权益。通过微信认证后,用户将在微信中看到认证公众账号特有的标识。本次新升级的认证系统暂只对服务号提供,并且需要收费。认证微信通过后,公众账号将自动获得高级接口中所有接口权限,如表1-2所示。
了解完订阅号和服务号的区别,让我们回归到注册这个主题上来,下面笔者会分别演示如何注册运营主体为个人的公众账号,及运营主体为组织的公众账号,让读者有一个完整的认识。
表1-2高级接口
接口名称 说明
语音识别 用户发送的语音将会通过语音识别接口给出语音识别后的文本内容
客服接口 通过客服接口,公众账号可以在用户发送消息的24小时内,向用户回复消息
OAuth2.0网页授权 通过网页授权接口,公众账号可以请求用户授权
生成带参数的二维码 通过该接口,公众账号可以获得一系列携带不同参数的二维码,在用户扫描并关注公众账号后,公众账号可以根据参数分析二维码
获取用户的地理位置 通过该接口,公众账号能够获得用户进入公众账号会话时的地理位置(需要用户同意)
获取用户的基本信息 通过该接口,公众账号可以根据加密后的用户OpenID,获取用户的基础信息,包括头像、昵称、性别、地区(关于OpenID的内容,笔者将会在后面介绍)
获取关注者列表 通过该接口,公众账号可以获取所有关注者的OpenID
用户分组接口 通过分组接口,公众账号可以在后台为用户移动分组,或创建、修改分组
上传下载多媒体文件 通过该接口,公众账号可以在需要时在微信服务器上传或下载多媒体文件
2. 信息登记:运营主体(组织)
从图1-9我们可以看到,当运营主体为组织时,还有4种类型可供选择:政府、媒体、企业和其他组织。读者可以根据自己的实际情况进行选择,在这里笔者选择了企业类型。
如实填写企业名称、企业邮箱、企业地址、邮编和营业执照注册号后,把网页往下拉来到图1-10所示的位置。
图1-9公众号注册:选择类型(组织) 图1-10公众号注册:选择类型(组织)
如实填写好成立日期、营业期限、经营范围之后,来到了营业执照副本扫描件这一项。首先,需要在扫描仪中对您的营业执照进行一次扫描,把生成的图像保存好,然后单击图1-10中所示的“选择文件”按钮,会弹出如图1-11所示的选择文件的对话框。
图1-11公众号注册:上传营业执照副本
在选中扫描仪生成的图像后单击“打开”按钮,至此就完成了营业执照扫描件上传的这一步骤。接下来,如实填写注册资本、组织机构代码、运营者身份证号码。运营者手持证件照片进行授权运营书的上传,其方法与营业执照扫描件的上传方法类似。填写好全部信息之后,单击“继续”按钮,可以进入图1-12所示的账号类型选择界面。
图1-12公众号注册:运营主体为组织时的账号类型选择界面
3. 信息登记:运营主体(个人)
简单地说,注册运营主体为个人的公众账号比注册运营主体为组织的公众账号需要填写的信息会少很多。 运营主体为个人时的信息录入界面如图1-13所示。
在这里证件照片的上传可以按照企业营业执照上传的流程来做。做好这步之后把网页往下拉,来到图1-14所示的位置。
图1-13公众账号注册:信息录入(个人,一) 图1-14公众账号注册:信息录入(个人,二)
需要强调的是,手机号码这一项要仔细填写,如果填错的话您将无法收到短信息验证码,并且每个手机号只能注册两次。全部填好之后,提交信息我们会来到图1-15所示的类型选择界面。
图1-15运营主体为个人时的选择类型界面
1.1.4完善公众账号信息
选择账号类型之后,就会进入到完善公众号信息的界面,填写账号名称、功能介绍、运营地区、语言、类型等信息就完成了公众号的注册申请。
提示越早补全微信公众账号信息,通过审核的速度越快。为了节省时间,头像和功能介绍完全可以先填写一个暂时的,一个月以后还可以修改。
1.2微信公众账号的认证
订阅号在关注数超过500后可以使用实名认证过的腾讯微博账号进行认证,认证后可以获得自定义菜单功能。订阅号的认证过程比较简单:登录公众号的管理台,在“设置”下的“账号信息”界面,单击“关联微博认证”,即可进入微博认证的流程。
本节的微信公众平台认证是指服务号的认证。通过服务号认证后除可以获得自定义菜单功能外,还可以获得高级接口的权限。微信认证的入口在左侧菜单栏中,单击“服务”按钮,然后单击“服务中心”按钮就会看到图1-16所示的界面。
图1-16微信认证入口
单击微信认证的黑体字,浏览器会跳转到介绍微信认证的网页。把网页向下拉,单击“申请”按钮,我们就正式开始了微信认证的流程,如图1-17所示。
仔细阅读协议,然后在网页的下端单击“下一步”按钮,浏览器跳转到图1-18所示的“同意命名规则”界面。
图1-17微信认证:同意协议
图1-18微信认证:同意命名规则
仔细阅读规则,这里需要仔细关注如何为公众账号取名,不合适的名称会影响认证进度。然后在网页的下端单击“下一步”按钮。浏览器跳转到图1-19所示的界面。
如实填写各项资料并提交,之后使用微信客户端的扫描二维码进行支付,就完成了认证申请。微信认证专员在收到认证资料后首先会审核资料的合法性,然后往企业的公众账号中打很少的一笔钱,并通过邮箱通知你,需要你把收款收据扫描版或者网银截图通过附件的方式回复给认证专员。认证专员在确认收据无误之后,就会通过审核(笔者的审核过程只花了一天)。在审核通过之后,单击图1-16所示左侧导航栏的“我的服务”,可以看到新的接口列表,如图1-20所示。
图1-19微信认证:填写资料
图1-20认证成功之后的“我的服务”
提示订阅号在关注数超过500后可进行微博认证,需要完成腾讯微博或者新浪微博实名认证之后才能进行。认证之后的订阅号信息中会显示相应的微博实名认证信息。
1.3编辑模式
在注册好公众账号并通过审核之后,就可以使用高级功能了。无论是服务号还是订阅号,都可以使用编辑模式,笔者在这里介绍如何使用编辑模式。
登录公众账号,单击左侧菜单栏的“功能”按钮,然后依次单击“高级功能”按钮,单击“编辑模式”按钮,进入编辑模式,如图1-21所示。
图1-21编辑模式主界面
编辑模式包含设置自动回复和自定义菜单两项功能。
1.3.1自动回复
单击自动回复的设置按钮,在进入的界面的右上角可以看到,编辑模式的自动回复方式有三种:被添加自动回复、消息自动回复和关键词自动回复,如图1-22所示。
1. 被添加自动回复
当一个新用户关注了您的公众账号以后,系统会自动给他发消息,消息的内容就是您在这里预先设置的。比如笔者在这里填写:“非常感谢您添加了我们的微信公众账号!”如图1-23所示。
设置好后单击“保存”按钮,然后用手机添加微信公众平台,此时微信服务器返回的消息如图1-24所示。
图1-22编辑模式
图1-23被添加自动回复
图1-24被添加自动回复示例
2. 消息自动回复
当一位已经关注了您的用户向您的公众账号发消息的时候,系统回复的内容就是您在这里预先设置的。比如设置“有什么问题可以给我们留言,我们会在后台与您一对一的交流。”如图1-25所示。
图1-25消息自动回复
设置好后单击“保存”按钮,实现的效果如图1-26所示。
图1-26消息自动回复示例
注意消息自动回复功能1小时内仅能回复1~2条内容。也就是说当用户在1小时内第三次向微信公众平台发消息时,其手机微信客户端是不会收到任何回复的。
3. 关键词自动回复
设置关键词自动回复的界面如图1-27所示。
图1-27关键词自动回复
先从添加规则开始吧。所谓规则就是自己定制的一个标准,比如笔者添加了一个规则,名为“定义”,关键字为“干什么的”、“做什么的”,如图1-28所示。
图1-28设置自动回复规则
这时我们在手机上可以看到图1-29所示的效果。
图1-29关键字自动回复示例
4. 未全匹配与已全匹配
在创建规则时,细心的用户可能会发现“未全匹配”4个字,如图1-30所示。接下来介绍未全匹配和已全匹配的区别。
图1-30未全匹配
未全匹配的意思是:如果设置了关键字“干什么的”、“做什么的”,并且用户发送来的消息里有这些关键字,比如“你们是干什么的”、“你们是做什么的”,那么微信公众平台的系统将会回复预先设置的回复消息,这里是“我们是一个实验室”,实现的效果如图1-31所示。
已全匹配是指:只有用户发送的消息和您的关键词一模一样,不多一个字也不少一个字,微信公众平台才会回复消息。还举刚才的例子,笔者这次使用关键字全匹配,那么再发送“你们是做什么的”、“你们是干什么的”,微信后台将不会给予任何回应。必须发送关键字“干什么的”、“做什么的”,公众平台才会回复消息,效果如图1-32所示。
图1-31未全匹配示例 图1-32已全匹配示例
微信服务器对于前两条消息并没有做出回复,因为在全匹配模式下,只对和关键词一模一样的消息进行回复。后两条消息正好是关键词,因此微信服务器对之做出了正确的回复。
提示如果同时设置了消息自动回复和关键字自动回复,那么会先匹配关键字自动回复,在所有关键字自动回复都没有匹配上之后才会使用消息自动回复的设置。
1.3.2自定义菜单
进入自定义菜单的设置模式和进入自动回复的类似。但有一点需要强调,如图1-33所示,单击“启用”后,系统会提示自定义菜单将会在24小时后更新。需要提醒您的是,可以对已修改了自定义菜单的公众账号取消关注,然后重新关注,这时再看到的手机端的自定义菜单就是修改后的样子了。
下面我们开始设置自定义菜单。如图1-34所示,单击绿色的“添加”按钮。
为按钮取一个名字,例如笔者将第一个按钮命名“关于我们”,如图1-35所示。
单击图1-35所示的那个“+”号就可以创建一级菜单下的二级菜单按钮了。比如笔者为二级菜单的按钮取名“团队宗旨”,并且选中“团队宗旨”按钮,效果如图1-36所示。
图1-33自定义菜单入口
图1-34添加自定义菜单
图1-35设置自定义菜单
图1-36添加二级自定义菜单
提示单击绿色的添加按钮创建的是一级菜单按钮,单击加号创建的是二级菜单按钮。
顺便给二级菜单按钮“团队宗旨”加上一个功能!比如添加发送消息的功能,在网页下端有绿色的预览按钮,效果如图1-37所示。
想在团队宗旨的下面添加“团队愿景”按钮该怎么办? 选中“关于我们”,单击加号,然后为新的按钮取名“团队愿景”,效果如图1-38所示。
图1-37自定义菜单预览 图1-38继续添加二级菜单
接下来,笔者还想加点便民服务,比如天气预报。单击图1-36所示的添加按钮,然后为一级菜单按钮取名“便民服务”,再创建二级菜单按钮“天气预报”,但是这一次有一些变化了。笔者为天气预报按钮设定的功能是跳转到网页,并输入URL:http://m.hao123.com/a/tianqi,如图1-39所示。
图1-39设置自定菜单动作为跳转到网页
再次预览,效果如图1-40所示。
图1-40自定义菜单预览
好了,我们把微信公众平台的注册、认证、编辑模式等功能都介绍完了,希望您根据以上介绍的详细流程可以创建出令自己满意的微信公众平台。
1.4开发模式简介
公众平台消息接口为开发者提供了与用户进行消息交互的能力。对于成功接入消息接口的公众账号,当用户发消息给公众账号时,微信公众平台服务器会使用HTTP请求对接入的网址进行消息推送,第三方服务器可通过响应包返回特性的回复,从而达到回复消息的目的。简单地说,就是公众账号可以使用自己的程序和用户对话。
这个模式和多年前的手机订阅很像。在21世纪初,互联网在泡沫之后迎来了一种非常厉害的盈利模式:SP/CP模式,这种模式拯救了水深火热的互联网。当然,这种模式现在已经过时了(大家可以网上搜索了解一下互联网的那段历史)。不过现实中还是存在与此相关的真实例子,如果你的手机号是移动的,可以参看10086的短信功能,如果你的手机是电信的,可以参看10000的短信功能。笔者的手机号是电信的,当笔者想查询套餐使用情况时,即可发送702到10001,10001会立即返回套餐的详细使用情况。大家肯定猜得到这条短信不是人工发过来的,而是由后台程序在接到702后将从电信自己的用户数据库查询的数据发过来的。同样的,移动的用户发送“YE”到10086查询余额的功能也是一样的。
使用了开发模式的微信公众账号就会成为一个配备了一些指令规则的账号。在用户关注公众账号之后,发送对应的指令给公众账号就可以获得相应的结果。而这些规则的逻辑需要公众账号的开发者根据公众平台的开发规则在后台实现。用户、微信后台和需要开发的公众账号后台的服务器三者之间的交互关系如图1-41所示。
图1-41用户、微信后台和公众账号服务器的交互图
对图1-41所示的具体的交互过程描述如下:
1)用户通过微信手机客户端向公众账号发送一条消息,这条消息会通过网络送达微信的后台;
2)后台在收到这个消息之后,把消息转发给公众账号的后台,也就是公众账号的服务器;
3)公众账号服务器在收到请求后,解析消息格式,根据用户内容和自己的服务器逻辑,计算出需要返回给用户的消息,然后封装消息并返回给微信后台;
4)微信后台把公众账号服务器发来的消息转发给用户的微信手机客户端,这样用户在手机客户端上就可以看到公众账号发来的微信消息了。
通过这个过程可以看到公众账号服务器要做的事情有三件:
获取微信后台发过来的消息;
实现自己的业务逻辑;
返回消息给微信后台。
因为微信服务器请求公众账号服务使用的是HTTP协议,所以在公众账号服务器上必须要运行一个HTTP服务并打开一个端口。为了方便,本书的实例在开发阶段使用Windows上的AppServ作为开发和调试环境,使用zendstudio作为PHP语言的IDE,使用Windows版本的MySQL作为数据存储;在部署应用时使用Nginx、PHP-FPM和Linux版本的MySQL作为生产环境。在搭建这套环境之前,先用云平台的方式快速搭建公众账号,从而带领读者快速认识公众账号提供的API。
1.5小结
本章介绍了公众账号的注册、认证、编辑模式中的自动回复和自定义菜单等功能,并且简单介绍了公众账号的开发模式,相信读者已经对公众账号有了基本的认识。公众账号的强大之处还是它提供的接口,使用这些接口可以开发出商业化的复杂应用,本书的剩余部分将会对公众账号的开发模式进行全方面讲解。