说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

【技术文章】微信公众平台开发教程新手解惑40则

HTML文档下载 WORD文档下载 PDF文档下载
由CSDN和《程序员》杂志联合主办的2014年微信开发者大会将于8月23日在北京举行。组委会已经邀请到了柳峰担任此次大会的演讲嘉宾,他将带来《智能客服与LBS开发的“坑”与解决之道》的主题分享。

【编者按】由CSDN和《程序员》杂志联合主办的 2014年微信开发者大会 将于8月23日在北京举行,邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇、智能客服与LBS、微信支付、微信上的HTML5社交应用、微信小店开发等角度为与会者带来实战分享( 议程 )。目前报名处于优惠票价阶段,通过申请加入CSDN CTO俱乐部即可享受8折购票价格(票款中均含午餐),在8月1日前完成付款的同学还将免费获赠微信开发图书一本(两选一,活动现场发放)。 

值得一提的是,CSDN优秀博主、畅销书《微信公众平台应用开发:方法、技巧与案例》的作者柳峰受邀做本次活动讲师之一,演讲主题《智能客服与LBS开发的“坑”与解决之道》。他在CSDN博客中( 查看)撰写了几十篇+的微信开发技术文章,多篇访问量都在3万+,以下这篇《 微信公众平台开发教程新手解惑40则》摘自他的博客。

全文如下:

笔者在CSDN博客频道推出微信公众平台开发教程之后,接触了许多公众平台开发爱好者,也帮助他们解决了许多实际的问题,当然这其中有很多问题都是重复的,因此,笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路。

1、订阅号与服务号的主要区别是什么?
订阅号每天能群发一条消息,没有自定义菜单及高级接口权限;服务号有自定义菜单及高级接口权限,但每月只能群发一条消息。

2、到底该申请订阅号还是服务号?
申请哪种类型的公众账号,主要取决于账号的用途。服务号主要面向企业和组织,旨在为用户提供服务;订阅号主要面向媒体和个人,旨在为用户提供信息和资讯。

3、订阅号是否支持编程开发?
不管是订阅号,还是服务号,在高级功能中都有编辑模式和开发模式,订阅号也支持编程开发,同样也能与企业系统对接。

4、为什么申请的公众账号没有高级功能?

公众账号注册后,要经过微信团队的审核,在审核未完成之前不显示高级功能。一般审核会在15个工作日内完成,如果一两周没审核通过均属正常现象,还请耐心等待。

5、现在订阅号能否申请自定义菜单?
不能。那为什么有些订阅号有自定义菜单?这是历史遗留问题。2013年8月5日,随着微信5.0的发布,公众账号被划分为订阅号和服务号,所有的公众账号都被默认为订阅号,并且有一次转服务号的机会,许多在此之前申请到自定义菜单的账号并没有转为服务号,所以就存在一些订阅号有自定义菜单,例如:36氪、蓉城先锋、天府之光等。

补充:2013年12月24日,公众平台针对订阅号做了重要更新。政府、传统媒体、明星等非企业性质的订阅号可以申请微信认证,通过微信认证的订阅号可获得自定义菜单接口权限。

6、现在申请的订阅号能否转服务号?

不能。只有2013年8月5日微信5.0发布以前申请的订阅号才有一次转服务号的机会,在此之后申请的订阅号不能转服务号。

那如果真的有转服务号的需求怎么解决?只能重新申请一个服务号。

7、目前一个身份证号能申请几个公众账号?

2个。

8、使用一个公司的材料能申请多少个公众账号?
没有限制。

9、在注册公众账号时,提示“你注册的公众号名称存在侵权风险,请先完成微博验证”,这是什么意思?

公众平台对一些可能存在侵权的关键词进行了保护,例如:“微信”、“移动”、“搜狐”等,如果注册的公众账号名称中包含这类关键词,提交时就会提示存在侵权风险。

遇到这种情况时,要么避开这些关键词换个名称注册,要么就根据提示先完成微博验证再继续注册。

10、个人能否申请服务号?

不能,个人只能申请订阅号。服务号的运营主体必须为组织,例如:企业、政府、其他组织等。

11、公众账号的名称可以重复吗?

公众账号的名称可以重复,不用担心被他人抢注。

12、公众账号的名称可以修改吗?
公众账号名称一经设置无法修改,公众平台没有提供账号改名的功能,因此在注册账号时取名应谨慎。

13、微信认证与微博认证有什么区别?

微信认证是针对于服务号,微博认证是针对于订阅号。也就是说,订阅号只能申请微博认证,服务号只能申请微信认证。

14、是否需要粉丝数达到500才能申请微信认证?

只要是服务号都可以申请微信认证,与粉丝数无关。只有订阅号申请微博认证才要求粉丝数必须达到500。

15、编辑模式与开发模式能够同时使用吗?

不能,这两种模式是互斥的,开启编辑模式就必须关闭开发模式,开启开发模式就必须关闭编辑模式。

16、现在用的是编辑模式,以后还可以选择使用开发模式吗?

可以,任何时候都可以根据需要切换到另外一种模式。

17、编辑模式切换到开发模式之后,在编辑模式中设置的内容还在吗?还有效吗?

在编辑模式中设置的内容,只要自己不手动删除,会永远存在的,但这些设置在开发模式下无效。

18、开发模式的菜单为什么突然消失了?

菜单不会无缘无故的消失,如果开发人员没有手动删除,那一定是有人开启过编辑模式引起的。请注意:开启编辑模式后,在开发模式下创建的菜单会被删除。

19、使用开发模式需要具备哪些条件?

1)至少掌握一门编程语言;2)具备公网服务器资源。

20、微信公众平台支持哪些编程语言?应该如何选择?

凡是支持动态Web开发的编程语言都能够用于微信公众平台开发,例如:Java、PHP、ASP.NET、Ruby、Python、Note.js等。

开者人员应该选择自己最擅长的编程语言进行开发,如果都不擅长怎么办?如果都不擅长,建议选择Java或PHP,原因在于网上关于微信公众平台开发的资料大都是基于Java和PHP的,开发起来要相对容易。

21、没有公网服务器资源怎么办?

1)免费:可以考虑使用云环境,例如,BAE(Baidu App Engine,百度应用引擎)和SAE(Sina App Engine,新浪应用引擎)。

2)付费:可以考虑租用VPS(Virtual Private Server,虚拟专用服务器)或阿里云的云服务器。

如果仅是为了学习微信公众平台开发,个人建议使用BAE。

22、如果想使用Java进行微信公众平台开发至少需要掌握哪些内容?

至少需要掌握Java基础知识、JSP、Servlet、Javabean和JDBC(操作数据库)。


23、公司的项目大都是基于SSH框架进行开发,能使用SSH开发微信公众账号吗?

当然可以,前面说过,凡是支持动态Web开发的编程语言都能用于微信公众平台开发。其实,Struts本质上也是Servlet。

24、柳峰老师,可以给我一份微信公众平台项目的源码吗?

想要源码的朋友请您免开尊口,我认为这不是一种很好的学习方式和态度,而是一种浮躁的表现。博客中的教程已经讲的很详细了,并且贴出了所有代码(一行也不少),如果这样还不愿意花点时间去理解、消化和动动手,我也无能为力!

PS:曾经也有一些开发者、创业团队和公司提出要买小q机器人(xiaoqrobot)的源码,有的开价是5位数,但都被我拒绝了。相比之下,我更愿意把小q机器人的完整实现过程写成一篇篇技术文章免费分享出来,带动更多的开发者加入到微信公众平台开发阵营!

25、公众账号能够通过程序主动向关注用户发消息吗?

截止目前,公众平台还没有开放主动向用户发消息的接口。为什么招行可以?我前面说的是没有“开放”主动发消息的接口,并不代表没有该接口。如果贵公司也有招行的实力,我相信你也有办法申请到;如果没有这样的实力,那就不要费事了。

26、订阅号使用开发模式能够向用户回复图片、语音和视频消息吗?

可以,虽然订阅号没有多媒体文件上传接口权限,无法通过上传多媒体文件到微信服务器获取MediaId,但仍可以变相得到MediaId,同样可以实现回复多媒体消息。变相的实现方法是将用户发送给公众账号的多媒体消息的MediaId记录下来,给用户回复多媒体消息时可以使用。

27、订阅号使用开发模式能够向用户回复 音乐消息吗?

可以。

28、音乐消息包含参数ThumbMediaId,没有高级接口权限的公众账号无法获得ThumbMediaId,怎么回复音乐消息?

ThumbMediaId不是音乐消息的必须参数,给用户回复音乐消息时可以不传ThumbMediaId参数,类似下面这种示例格式也能正确回复音乐消息:

<xml>	<ToUserName><![CDATA[toUser]]></ToUserName>	<FromUserName><![CDATA[fromUser]]></FromUserName>	<CreateTime>12345678</CreateTime>	<MsgType><![CDATA[music]]></MsgType>	<Music>		<Title><![CDATA[TITLE]]></Title>		<Description><![CDATA[DESCRIPTION]]></Description>		<MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>		<HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>	</Music></xml>

29、订阅号与非微信认证的服务号能够向回复哪些类型的消息?

在开发模式下,订阅号与非微信认证的服务号只能向用户回复文本消息、音乐消息和图文消息。

30、为什么项目代码与柳峰老师教程中的一样,发消息给公众账号却没有任何响应?

这是我写微信公众平台开发教程以来,初学者给我反馈最多的问题。可以肯定的是,至今为止,我博客中贴出的所有代码全部都能正常运行,没有任何问题。遇到上面这种问题大都是由以下三种情况引起:

1)在公众平台开发模式下,成为开发者却忘记开启开发模式,即开发模式的开关是关闭状态。

2)通过上传WAR包的方式部署应用时,导出的WAR包中没有包含JAR。建议初学者直接将项目需要的JAR拷贝到项目中,这样通过开发工具导出的WAR包就会包含JAR。

3)项目中引入的第三方JAR包与笔者教程中使用的JAR包版本不一致。

31、为什么自定义菜单创建成功了,在微信客户端的公众账号上却不显示?

由于微信客户端缓存的原因,自定义菜单创建成功后,需要24小时以后才能显示出来。开发者在测试时,可以尝试取消关注公众账号后再次关注,这样能立即看到最新的菜单效果。

PS:菜单更新、菜单删除也会有缓存。

32、如果要更新公众账号的自定义菜单,需要先将原有菜单删除吗?

不需要,直接执行菜单创建方法即可,每次创建菜单会自动覆盖以前的菜单。

33、什么是微网站?

微网站是新瓶装老酒,被一些搞营销的人给神化了,以至于很多开发者都在问什么是微网站,如何开发微网站。微网站本质上就是以微信浏览器为入口的手机网站(Web APP),能够兼容Android、iOS、WP等操作系统。开发微网站用到的技术与开发普通网站一样,都是基于HTML(HTML5)、CSS、Javascript等,所以有普通网站开发经验的开发者,完全有能力开发微网站。

PS:初学者以后再看到什么以“微”开头的新名词,例如:微商城、微客服、微统计,直接把“微”字去掉或者把“微”当作是“基于微信的”就不难理解了。

34、什么是模拟登录?模拟登录微信公众平台 能够干什么?

模拟登录指的是通过程序模拟用户在浏览器上的操作。例如,我们通过浏览器访问微信公众平台,先要登录,登录成功后能够查看用户信息、给用户回复消息、群发消息等,其实通过程序也能够实现这些操作。

PS:对于模拟登录,官方并没有明确表态是允许还是禁止,请谨慎使用,万一哪天被封号就不划算了,也没法向关注你公众账号的用户交待。

35、微信认证是如何收费的?

服务号申请微信认证需要支付300元/次的审核服务费用,无论最终的认证审核通过与否,都需要支付这笔费用。微信认证成功后,认证的有效期是一年,在有效期快结束时还要再次申请微信认证。

36、微信支付如何申请?

截止目前,微信公众平台仍未开放微信支付权限的申请。为什么广东联通、小米手机这些账号有微信支付权限?这些公司大都与微信有着合作关系,提前享受这些权限一点也不奇怪。

37、临时带参二维码有哪些应用场景?

通过微信扫描二维码登录微信网页版,就是临时带参二维码的典型应用场景。

38、微信公众平台开发一般如何调试?

微信公众平台提供的 在线接口调试工具旨在帮助开发者检测调用公众平台接口时传入的参数是否正确,这款工具对开发者的帮助其实并不大。对于调试本地运行的公众账号后台程序,这里给读者推荐两种方法:

1)使用“微信开发调试小工具”,该工具支持在本地调试,工具的用法及下载请访问:http://www.cnblogs.com/linkbiz/。

2)使用 花生壳动态域名解析软件,通过路由器端口映射,可以将自己的电脑变成一台外网服务器,这样本机运行的公众账号后台程序就能直接与微信服务器进行交互了。

39、为什么项目在本地运行正常,也能获取到数据,部署到服务器上之后公众账号没有任何响应?

遇到这类情况,请读者尝试从以下几个方面排查问题:

1)检查项目在服务器上是否部署成功,可以尝试方法以前能够正常运行的功能模块,看能否正确响应,以便缩小问题范围。

2)检查项目中通过URL传递参数时,如果传递特殊字符(例如:中文、+、&等),是否对特殊字符进行了编码。

3)检查程序的处理是否超时,如果超过5秒,公众账号不响应。

4)检查返回的文本消息、图文消息是否超过限制(文本消息长度<=2048字节,图文消息条数<=10条),若超过限制,公众账号不响应。

5)公众账号不响应也有可能是微信公众平台自身故障导致。

40、为什么URL在浏览器能访问,放到微信上却不能访问?

请检查URL中是否包含特殊字符,例如:中文、+、&等,PC上的浏览器通常都会对URL中包含的特殊字符自动编码,但有些浏览器不会。 为了保证所有的浏览器都能正常访问URL,请务必对URL中包含特殊字符显示编码,显示编码的意思是代码中能够明确看出编码方式是UTF8、GB2312或者其它。例如像下面这样:

// 采用操作系统默认的字符集进行编码,在不同的操作系统上表现不一致,不推荐java.net.URLEncoder.encode(chinese);
// 显示编码,推荐用法java.net.URLEncoder.encode(chinese, "UTF-8");
PS:很多初学者都认为只有URL中包含中文时才需要编码,结果导致OAuth2.0授权接口、通过ticket换取二维码接口总是调用不成功。 OAuth2.0授权接口中的回调地址redirect_uri中包含大量特殊字符必须进行编码,通过ticket换取二维码接口中的ticket中可能包含+号也要进行编码。

送给初学者一条中肯的建议:不要总是怀疑微信公众平台的接口或者有经验的开发者分享的程序代码有问题,最先应该怀疑自己写的程序有问题,这样才有助于发现问题,从而解决问题。请相信:一套久经考验的平台、程序被初学者发现BUG的情况并不多见。


欢迎大家到现场与柳峰深度沟通。目前, 2014微信开发者大会首批讲师和议程已经出炉(持续关注 官网更新)。另外,主委会还开设了 讲师和话题公开征集平台,欢迎技术精英自荐和互相推荐,也可以直接联系 @CSDN付江 @CSDN陈秋歌 。


2014微信开发者大会议程(持续更新)

此外,主办方还特别开设了 “微信公众平台优秀开发商”征集评选活动( 更多详情)现在就去 投票。微信开发者QQ群:375106712(已满)和微信开发者② QQ群:369742525,欢迎加入交流。

相关阅读:

  • 微信开发者大会柳峰:公众平台开发入门详解(教程)
  • 2014微信开发者大会议程公布 8月1日前购票8折优惠并赠书
  • 以招行为例,深圳云软黄榕振谈微信公众帐号企业应用高级开发
  • 微信开发者大会讲师介绍:柳峰与你一起玩转公众平台应用开发
  • 如何打造百万级自然增长的微信HTML5应用

关注 @CSDN研发频道,了解更多研发资讯,参与互动讨论;当然您可以向我们推荐更多有趣、有质量的文章。

Windows 8的IE10在浏览器安全测试中独占鳌头 程序员如何做出“不难看”的设计 JDK6明年2月停止更新,甲骨文呼吁尽快升级至7 《时代》评选年度十大视频游戏,激战2居首 《时代》评选年度十大科技产品,iPhone 5居首 Loopjoy:让开发者在移动游戏里贩售真货 iPhone 5S真机照片泄露 明年初上市 Beeline:从“蓝精灵村庄”到“捉鬼敢死队” Windows Server 2012域服务的六大改进 如何编写出优美的JavaScript代码? Unity CEO:不会因赌博游戏谋取金钱利益 云领域:且看亚马逊、Rackspace、微软及谷歌四国争霸 十一位EMC高管读2013技术趋势 你准备好了吗? Yahoo:拥抱Hadoop和HTML5 苹果聘女黑客为系统安全员 曾让Vista推迟发布 移动游戏定价之谜:0.99美金行不通 9.99美金和19.99美金才是王道 2012末日年:《时代》评选年度十大App 使用HTML5 Web存储实现离线工作 紧跟亚马逊、谷歌步伐 微软下调Azure云服务价格 云计算一周热点回顾:Hadoop专家分享大数据技术工具与最佳实践 Python之父Guido Van Rossum离开谷歌 一月加盟Dropbox 图灵奖获得者Butler Lanpson:计算机在做些什么 华为高级技术经理Anoop Sam John:HBase的二级索引 秦令今:技术是竞争的核心,形成自己的特色! 兰旭:拒绝同质化,做自己的真材实料! Cloud Foundry直面PaaS对手 初具商用能力 IndieBros访谈:探寻《2+18+200万》背后的故事 移动周报:生存还是毁灭 HTML5未来路在何方? 开发者的新机遇:微软生态系统打开开源大门 阻碍创新:谷歌、Facebook请求驳回抽象专利概念 Apple专利战分析:战火不停 创新不止 Session为什么掉了??急切等待!!! struts中一个页面如何显示多个FormBean? 过节了,散分,祝大家中秋快乐!!!!!! 請問TForm中相當於MFC中OnIdle()的event是什麼 数据库问题,急!!急!急!急!急! CISCO2600的ISDN拔号不会自动断线,怎么办? 谁知道怎么验证一个用户名和一个密码是不是在WINDOWS2000中添加过的?而且正确? 。。。谁能给我发一个“智能狂拼2”的下载连接地址 请求--网页评比规则? 在visual.net上无法调试存储过程。急。求救 asp加密程序 我用SQL server+DElphi中的ADO做数据应用程序,数据库备份后,怎样实现数据库的恢复? 贴子太多了,看不过来了,大力liuri出来讲讲 sqlserver 用 jdbc出错 ,Microsoft][SQLServer 2000 Driver for JDBC]Error setting up static cursor cache 如何在C#中用代码控制本地FTP服务打开和关闭?99分,中秋快乐. 关于dll的问题,在线求教 昨晚,我抱了我MM一下!开心呀!散分! 有什么软件可以使上网不受防火墙的限制? 一个C的图形函数,请问怎样用的? 数据库查询语句执行错误 web页面的activex控件怎么调用服务器上的动态连接库?? 中秋散分 【泰坦】祝大家中秋节快乐!(1) 纯jsp聊天室的页面刷新问题 这个MSDN是不是常说的那个MSDN资料库? 一句sql语句问题 【泰坦】祝大家中秋节快乐!(2) 我的触发器为什么没有响应啊。在线等啊 pb9.0+sql server 2000,怎样制作程序发布? pb给dll传递结构数组的问题。急!!! pb9.0+sql server 2000,怎样制作程序发布? 为什么关闭MSDEV的时候,会导致它占用90%以上的CPU时间??? 如何在代理中同時讓兩個套表同時結案 菜鸟问题:我想把一个CString类型转换成LPBYTE类型应该怎么弄? 如何在JRUN3.1中连接SQLSERVER, 我的web server用的是IIS5 怎么样在JSP中显示 WORD 或 WPS 格式的文件? 如何在servlet 中存储数组用javabean 取数组用JSP显示(在线等,急,谢谢) 如何使Response.Redirect "xxx.htm"打开的网页是满屏显示! 鄙视民工的人,给你讲个故事听。 庆祝中秋佳节,大散分~ 中秋节到了,与大家同庆,散点分!!!祝大家开心呀! VC的bug!!! 游戏、网络、图形等版块正在整顿中,有意见或建议欢迎提出!! 如何进一步提高C语言的功力???? 学习JSP的过程中遇到的问题(问题1),请进!!! 大家说一下网上下载的水晶报表crystal report 9.0会过期吗!!买一套要好几万的! 有个问题想请教,关于数码相机生成的图片的格式及存储方式! 在网站上数据保密问题 我用Inet控件下载文件时,经常会遇到无法结束程序的问题? 我在用电脑的时候,有时会提示我们插入WIN98光盘,但我现在用的这台,它会自动扫描的,自动查找,是怎么回事啊,在线等啊。 请问有DOS下的C++编译器吗???哪里下载?? 建国大业陈坤和佟大为的台词,以及和蒋介石的台词,要全部孔令侃:姨妈,人家大权在握,一句话就把我扬子公司里里外外全都封了,还派人满上海的传讯我.也好,今天见了面,也省的大表哥大费 比喻与事情根源有联系的不明显现索 “锏”与“鞭”的区别是什么造型上(长度、外形、重量)和用法上(招式、对象)的区别 “反腐亡☭ 不反腐亡国”是jiang委员长提出来的吗? 锏和鞭的区别 当仁不让,责无旁贷,义不容辞,的意思是什么 责无旁贷,义不容辞,当仁不让的区别? 是learn to do sth 还是learn doing sth 快 高中物理在线_高中物理的复习方法? wrong的反义词( ) house(音近词)() 英语教授做学问都研究什么 加拿大政府受困“骗领门” 参议员公务孕妇遇车祸入院治疗 腹中3个多月胎儿闲林水库月底基本完成坝体填筑 明年主杭州新能源汽车4年来仅上路2563辆浙江702个重点污染源实现刷卡排污 中小企业融资对接(图)浙江省委常委参加指导专题民主生活会富阳造纸业再度产业升级 百余造纸企业萧山万丰商住楼10多户人家遭遇用水难杭州1号线地铁三个高架站点碎了46块省卫生厅、省公安厅联合发文加强医疗场月薪5000,你能领到这么多退休金厦门之旅--人在途中,心随景动把失败化成动力 用智慧创造财富 让机收藏古钱币一种聪明人的“升值”选择美元指数延续霸气  原油沥青逐步推高希望大家不要相信什么加微信付款看H小这组图每张都有亮点!全球23位美女政客,你们感受一下欧洲杯第7日前瞻-英伦火爆德比战 莱那什么sunshine组合火到日本了没有女朋友怎样玩丝袜诱惑?元力风暴镜仙绝品斗神星空大帝冰焰战神隔世情仇抗日之超级悍匪信仰推销员萌系萝莉的超神物语魂越苍心王尼玛的世界托克逊雅丹地貌旅游塔里木胡杨林公园旅游明月寺旅游香溪河旅游黄花城水库旅游天荒坪电站旅游文庙旅游螺髻山九十九里旅游王二包自然保护区旅游武义温泉度假区旅游芙蓉峡旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘