微信开发(一)

微信开发

服务号功能

1、1个月(自然月)内仅可以发送4条群发消息。
2、发给订阅用户(粉丝)的消息,会显示在对方的聊天列表中。相对应微信的首页。
3、服务号会在订阅用户(粉丝)的通讯录中。通讯录中有一个服务号的文件夹,点开可以查看所有服务号。
4、服务号可申请自定义菜单。

订阅号功能

1、每天(24小时内)可以发送1条群发消息。
2、发给订阅用户(粉丝)的消息,将会显示在对方的“订阅号”文件夹中。点击两次才可以打开。
3、在订阅用户(粉丝)的通讯录中,订阅号将被放入订阅号文件夹中。
备注:在微信4.5版本之前申请的订阅号可以有一次机会升级到服务号,新注册的微信公众平台账号在注册到第四步的时候有一个选择类型让你选择订阅号或者服务号,这个一旦选择就不可以改变了,一定要确定好,作为企业推荐选择服务号,因为后期对服务号腾讯会有一些高级接口开放,企业可以更好的利用公众平台服务你的客户。如:指尖上的生活
个人申请,只能申请订阅号。

订阅号与服务号的主要区别

订阅号每天能群发一条消息,没有自定义菜单及高级接口权限;服务号有自定义菜单及高级接口权限,但每月只能群发一条消息。

微信5.0发布

2013年8月5日,伴随着微信5.0 iPhone版的发布,公众平台也进行了重要的更新,主要包括:
1)运营主体为组织,可选择成为服务号或者订阅号;
2)服务号可以申请自定义菜单;
3)使用QQ登录的公众号,可以升级为邮箱登录;
4)使用邮箱登录的公众号,可以修改登录邮箱;
5)编辑图文消息可选填作者;
6)群发消息可以同步到腾讯微博。
其中,大家议论最多的当属前两条,就是关于帐号类型和自定义菜单的更新,我这里做几点补充说明:
1)目前公众号类型分为两种:服务号和订阅号,8月5日平台更新后所有的帐号默认为订阅号,有一次转换成服务号的机会;
2)服务号主要面向企业、政府和其他组织,而订阅号主要面向媒体和个人;
3)只有服务号可以申请自定义菜单,订阅号不能申请;
4)服务号每月只能群发一条消息,而订阅号每天能群发一条消息。
平台更新后,让很多人纠结的是自定义菜单和每天群发一条消息不可兼得。

需求

学院需求

提供查询服务

  • 课表
  • 成绩
  • 学院最新动态
  • 公告通知

加强与本学院同学的沟通

  • 提供学生与老师沟通的平台
通过沟通了解学生的需求,有利于更好的学院发展

学生需求

  • 现在的大学生,网上的一代,手机控的一代,想要追求便捷的生活。他们对于信息的获取,更希望通过新兴媒体,像微信这样的通讯工具。

通过需求可知学院应该选择服务号


看例子(无图无真相)

看商学院做好例子(这个是订阅号,是以前申请的所以有自定义菜单)

鱼和熊掌不可兼得,可是早申请的就能兼得,他就是一个例子,所以凡事还是得下手早

Alt text

Alt text

Alt text

Alt text

微信5.0后的订阅号

Alt text

微信5.0后的服务号

Alt text

Alt text

Alt text

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

凡是支持动态Web开发的编程语言都能够用于微信公众平台开发,例如:Java、PHP、ASP.NET、Ruby、Python、Note.js等。
开者人员应该选择自己最擅长的编程语言进行开发,如果都不擅长怎么办?如果都不擅长,建议选择Java或PHP,原因在于网上关于微信公众平台开发的资料大都是基于Java和PHP的,开发起来要相对容易。

使用Java进行微信公众平台开发至少需要掌握哪些内容

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

微信上微网站的解释

微网站本质上就是以微信浏览器为入口的手机网站(Web APP),能够兼容Android、iOS、WP等操作系统。开发微网站用到的技术与开发普通网站一样,都是基于HTML(HTML5)、CSS、Javascript等,所以有普通网站开发经验的开发者,完全有能力开发微网站。

公众平台开发接口介绍

公众平台是为微信用户提供服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。
公众平台开发接口提供与用户进行消息交互、自定义菜单交互的能力。对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构,从而达到回复消息的目的

微信公共平台服务器

先上图


Alt text

这是本地的服务器与微信服务器之间数据传送(get/put)
开发者主要是在本地服务器上进行部署。
下面这是我对消息推送处理的理解

Alt text

接口信息

待资料补全后,再次点击“成为开发者”,这时将看到接口配置信息界面,如下图所示:


Alt text

这里需要填写URL和Token两个值。URL指的是能够接收处理微信服务器发送的GET/POST请求的地址,并且是已经存在的,现在就能够在浏览器访问到的地址,这就要求我们先把公众帐号后台处理程序开发好(至少应该完成了对GET请求的处理)并部署在公网服务器上。

开发接口信息

公众平台开发接口提供与用户进行消息交互、自定义菜单交互的能力。对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构,从而达到回复消息的目的。

网址接入

Alt text

具体细节可参微信开发API文档

服务器应该满足

  • web开发服务器
  • 能够解析常用的动态Web开发的编程语言例如:Java、PHP、asp.net、jsp等。
  • 需要支持学院一些信息的存储,而不是存储在微信服务器上,本地化的存储有利于加快信息的访问速度,对用户的体验有益。

服务器的配置

开始我考虑的是LAMP+tomcat+mono组合(个人比较喜欢开源文化,应此倾向于此组合)

LAMP介绍

LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。
Web服务器、缓存和PHP加速
Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web 服务器(例如nginx)高效,轻量级的Web服务器对于静态文件的响应能力来说远高于Apache服务器。
Apache做为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用nginx来负载非PHP的Web请求。nginx是一个高性能的HTTP和反向代理服 务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容 错,可和Apache配合使用,是轻量级的HTTP服务器的首选。
Web服务器的缓存也有多种方案,Apache提供了自己的缓存模 块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,把Squid放在 Apache的前端来缓存Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。如访问量巨大则可考虑使用memcache作 为分布式缓存。
PHP的加速使用eAccelerator加速器,eAccelerator是一个自由开放源码PHP加速器,优化和动 态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。 使PHP程序代码执效率能提高1-10倍。

总的来说,LAMP架构的网站性能会远远优于Windows IIS + ASP + Access可以负载的访问量也非常大,国内的大量个人网站如果想要支撑大访问量,采用LAMP架构是一个不错的方案。
综上所述,基于LAMP架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是Web网络应用和环境的优秀组合。

tomcat介绍(用它来解析jsp)

因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML(标准通用标记语言下的一个应用。)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

mono介绍(用它来解析asp.net)

moon是Novell公司开发的跨平台·NET运行环境
Mono 是一个由Novell 公司主持的项目。该项目的目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C# 编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。

第二方案

对于第一方案,执行过程,相当麻烦,对于mono的配置出错,还有两者对于jsp和asp.net的解析也不太好,整体过于臃肿,考虑到服务器以后的维护,决定放弃第一方案,采用Windows IIS+ASP+MySQL+tomcat
采用tomcat和iis服务器集成来解析jsp
这个方案实施起来相对简单。一切都是傻瓜似的操作
整体架构部署在windows server 2008 R2系统上,安装过程相对简单,主要是配置过程有点难度,具体配置过程在这里就不赘述了,在以后的文档中会有详细的记录。

自定义菜单申请到了,到底该怎么创建、怎么使用。

自定义菜单的创建步骤
1、找到AppId和AppSecret。自定义菜单申请成功后,在“高级功能”-“开发模式”-“接口配置信息”的最后两项就是;
2、根据AppId和AppSecret,以https get方式获取访问特殊接口所必须的凭证access_token;
3、根据access_token,将json格式的菜单数据通过https post方式提交。

分析创建菜单的难点

  • 首先,第1步肯定都没有问题,只要成功申请了自定义菜单,一定能拿到AppId和AppSecret这两个值。
  • 再来看第2步,由于是get方式获取access_token,简单的办法是直接把ping好的url放在浏览器里执行,access_token就拿到了。
  • 最后再看第3步,拼装json格式的菜单数据,虽然繁锁一点,但基本上也都没有什么问题的,因为官方给了个例子,照猫画虎就行了。那问题一定就出现在https post提交上了。

这里要好好仔细阅读通用接口文档

你可能感兴趣的:(微信开发(一))