新書推薦:
《
做最好的班主任(李镇西教育文集版)
》
售價:NT$
230.0
《
数据驱动法律
》
售價:NT$
390.0
《
对话世界一流大学图书馆馆长
》
售價:NT$
995.0
《
揭秘立体翻翻书--我们的国宝
》
售價:NT$
490.0
《
清代贡院史
》
售價:NT$
800.0
《
光焰摇曳——变革与守望的梁启超
》
售價:NT$
440.0
《
发展与制约:明清江南生产力研究(壹卷李伯重文集:江南水乡,经济兴衰,一本书带你穿越历史的迷雾)
》
售價:NT$
480.0
《
走进史学(壹卷李伯重文集:李伯重先生的学术印记与时代见证)
》
售價:NT$
360.0
|
編輯推薦: |
实战:八个实际项目案例,从基础入门到高级应用,手把手教你成为微信大牛
简单:30天,上千行核心代码让你精通微信企业号开发
丰富:AngularJS、ECharts、Qpid、WebSocket、Servlet等10余种技术与微信的结合
创新:类似微信小程序的单页面应用开发讲解
|
內容簡介: |
本书是微信公众平台企业号开发较全面、系统的一本书,以实战开发为原则,讲解微信各个模块的开发使用,以实例引导企业号的开发与运用,以Struts、Hibernate、Servlet、HttpClients、JSP、Ajax、jQuery等热门技术实现微信Light App的开发,通过QPID、代理服务、页面有效期等方式实现数据的安全交互,除此之外,对SPA单页面应用框架如何在微信中运用也做了详细介绍。本书共11章,涵盖的主要内容有:微信公众号概述、企业号的发展与注册、配置微信开发环境、JCE安全策略、微信企业号开发基础知识、主动推送模式、被动回调模式、企业会话模式、JSAPI模式、通讯录管理、语音导航、腾讯地图使用、WebSocket微信开发、微信单页面应用、QPID、前置机数据安全访问、企业资讯、微信考勤等。本书由简入深,实用性较强,即便没有微信开发经验的读者,也能够一步步学习微信开发,学会每个接口的调用及问题处理。有公众号开发经验的读者,则可以重点阅读JSAPI和数据安全章节,丰富企业号应用,解决微信SPA物理回退、语音导航等问题。
|
關於作者: |
牟云飞,高级研发工程师,烟台海颐软件股份有限公司产品经理。参与众多项目开发,具有丰富的项目实战经验,同时也是微信企业号开发的先行者,在实际开发过程中,积累了丰富的知识和经验。
|
目錄:
|
目 录
第一篇 从零开始学企业号
第1章 微信公众平台认识企业号2
1.1微信企业号简介2
1.1.1平台发展历程2
1.1.2企业号定位3
1.1.3与订阅号、服务号区别3
1.1.4企业号应用4
1.2企业号注册5
1.2.1基本信息5
1.2.2邮箱激活5
1.2.3选择类型6
1.2.4信息登记7
1.2.5公众号信息10
1.2.6绑定管理员11
1.2.7增加管理员11
1.2.8认证13
1.3应用创建14
1.3.1进入应用中心14
1.3.2选择应用类型15
1.3.3填写应用信息15
1.3.4完成应用创建16
第2章 平台开发基础入门17
2.1JDK及JCE补丁部署17
2.1.1安装JDK17
2.1.2环境变量19
2.1.3JCE安全策略补丁21
2.2开发环境22
2.2.1安装MyEclipse22
2.2.2绑定服务器24
2.2.3调整编译环境26
2.2.4微信web开发工具27
2.3HttpClients使用技巧29
2.4HttpURLConnection使用技巧32
2.5Properties配置文件使用36
2.6接口调试工具37
2.7发布外网服务38
2.8公众平台消息模式39
2.9微信企业号入门Hello World40
第二篇 微信企业号开发核心技术
第3章 主动调用模式46
3.1主动调用模式介绍46
3.2申请AccessToken47
3.3AccessToken的缓存处理50
3.4主动调用频率限制53
3.5信息推送53
3.5.1接口说明54
3.5.2推动文本消息56
3.5.3推送图片消息61
3.5.4推送语音消息62
3.5.5推送视频消息66
3.5.6推送文件消息70
3.5.7推送新闻消息73
3.5.8推送永久图文消息79
3.5.9管理端推送消息86
3.6素材管理87
3.6.1接口说明87
3.6.2上传临时素材文件87
3.6.3获取临时素材文件90
3.6.4上传永久素材(非图文素材)92
3.6.5上传永久素材(图文素材)93
3.6.6获取永久素材(非图文素材)97
3.6.7获取永久素材(图文素材)98
3.6.8删除永久素材99
3.6.9修改永久图文素材100
3.6.10获取素材总数101
3.6.11获取素材列表102
3.6.12管理端素材维护104
3.7企业号应用管理105
3.7.1获取企业号应用105
3.7.2设置企业号应用107
3.7.3获取应用概况列表108
3.7.4管理端应用管理109
3.8主动模式自定义菜单110
3.9信息自动回复111
3.10案例:业务派单113
第4章 被动回调模式117
4.1被动回调模式介绍117
4.2开启回调模式119
4.3加密解密算法123
4.4被动模式自定义菜单125
4.4.1限制与说明125
4.4.2创建菜单127
4.4.3删除菜单132
4.4.4获取菜单列表133
4.4.5管理端菜单维护134
4.5接收消息Dom解析135
4.6消息响应Xstream转换138
4.7接收普通消息141
4.7.1接口说明141
4.7.2接收文本消息145
4.7.3接收图片消息146
4.7.4接收音频消息147
4.7.5接收位置消息148
4.7.6接收小视频消息149
4.7.7接收链接消息151
4.7.8接收视频消息152
4.8接收事件消息153
4.8.1接口说明153
4.8.2接收关注取消关注事件155
4.8.3接收地理位置事件157
4.8.4接收进入应用事件158
4.8.5接收菜单事件159
4.8.6接收异步任务完成事件166
4.9被动响应消息167
4.9.1接口说明167
4.9.2被动响应文字消息169
4.9.3被动响应图片消息171
4.9.4被动响应音频消息173
4.9.5被动响应视频消息175
4.9.6被动响应图文消息177
4.10案例:企业通讯录快速搜索180
第5章 JSAPI模式192
5.1JSAPI模式介绍192
5.2页面接口引入193
5.2.1配置可信域名193
5.2.2引入微信JS文件194
5.2.3权限验证194
5.2.4验证成功事件199
5.2.5验证失败事件199
5.3Debug调试及基础接口说明199
5.3.1Debug调试模式开启199
5.3.2判断当前客户端版本是否支持指定JS接口200
5.3.3接口通用函数201
5.4微信JS-SDK接口说明201
5.5权限接口应用202
5.5.1隐藏右上角菜单202
5.5.2GPS定位获取位置信息204
5.5.3图片处理接口205
5.5.4语音及智能接口206
5.6ECharts在微信中的应用208
5.6.1ECharts简介208
5.6.2ECharts快速接入208
5.6.3ECharts微信应用210
5.7微信中的地图语音导航214
5.7.1微信内置地图导航214
5.7.2腾讯地图语音导航215
5.7.3百度地图语音导航217
5.8微信SPA开发219
5.8.1基于AngularJS的onsenUI219
5.8.2创建AngularJS微信服务220
5.8.3SPA下JSAPI模式权限初始化221
5.8.4SPA下获取OAuth 2.0成员身份信息222
5.8.5解决微信物理回退223
5.9微信WebSocket开发224
5.9.1WebSocket客户端224
5.9.2WebSocket服务端226
5.10微信中的支付宝228
5.11常见问题229
5.12案例:现场业务上报232
5.12.1场景回顾232
5.12.2示例代码展示232
第6章 企业会话模式240
6.1企业会话模式介绍240
6.2开启企业会话242
6.3推送聊天信息245
6.3.1信息推送接口说明245
6.3.2聊天消息体结构说明247
6.3.3创建多聊会话250
6.3.4修改多聊会话253
6.3.5退出多聊会话255
6.3.6获取多聊会话信息256
6.3.7清除未读会话状态257
6.3.8会话消息免打扰258
6.4接收聊天信息260
6.4.1信息接收接口说明260
6.4.2普通消息结构体说明262
6.4.3事件消息结构体说明265
6.5案例:企业IM与微信的对接267
第7章 通讯录管理及异步任务275
7.1成员验证关注275
7.2部门管理276
7.2.1新增部门276
7.2.2更新部门277
7.2.3删除部门278
7.2.4获取部门列表278
7.3成员管理279
7.3.1新增成员280
7.3.2成员扩展属性extattr281
7.3.3维护成员信息282
7.3.4删除单个成员283
7.3.5批量删除成员284
7.3.6获取成员信息284
7.3.7获取部门成员286
7.3.8获取部门成员及详细信息287
7.4异步任务管理289
7.4.1上传CVS文件290
7.4.2全量覆盖部门292
7.4.3全量覆盖成员296
7.4.4jobid获取异步任务结果299
7.4.5callback接收异步任务通知302
7.5标签管理305
7.5.1创建标签305
7.5.2新增标签成员307
7.5.3删除标签成员310
7.5.4获取标签成员313
7.5.5删除标签313
7.6案例:企业通讯录异步维护314
第8章 数据安全访问策略321
8.1OAuth 2.0身份验证321
8.1.1获取code322
8.1.2根据code获得成员信息323
8.2浏览器类型安全访问325
8.3全局验证码变量326
8.4页面有效期访问327
8.4.1JS定时任务校验328
8.4.2事件校验329
8.5QPID消息队列330
8.5.1QPID消息Hello World330
8.5.2QPID发送MAP消息333
8.5.38080端口问题336
8.6代理服务器337
8.7企业号服务IP白名单339
8.8案例:通过DMZ服务器获取内网图片341
第9章 数据库及服务器348
9.1常用SQL语句348
9.1.1查询语句348
9.1.2新增语句350
9.1.3更新语句350
9.1.4删除语句351
9.2HQL语句基础语法351
9.3HQL方言处理354
9.4Tomcat服务器355
9.4.1在SDK中部署355
9.4.28080端口号冲突356
9.4.3内存调整358
9.4.4清理数据缓存358
9.5JBoss服务器359
9.5.1JBoss在SDK中安装359
9.5.2修改8080端口360
9.5.3JBoss内存调整361
9.5.4发布缓存处理363
9.6WebLogic服务器363
9.6.1域的创建363
9.6.2WebLogic在SDK中安装367
9.6.37001端口号调整368
9.6.4服务器缓存清理368
第三篇 综合案例
第10章 基础应用企业资讯370
10.1创建应用371
10.2获取开发者信息371
10.3开发实现372
10.3.1创建数据库Table372
10.3.2生成POVO实体类374
10.3.3创建工具类WxUtil379
10.3.4创建Web服务382
10.3.5Service处理Web请求384
10.4开启企业资讯应用回调390
10.5创建最新资讯菜单391
10.6本章小结391
第11章 更近一步:微信考勤392
11.1场景回顾393
11.2腾讯地图引入393
11.2.1腾讯地图Key申请394
11.2.2腾讯地图Demo395
11.2.3腾讯地图坐标转换397
11.3开发实现397
11.3.1创建微信工具类398
11.3.2编写回调服务406
11.3.3考勤信息实体类408
11.3.4创建业务层服务类409
11.3.5服务跳转类415
11.3.6JSP考勤打卡Map页421
11.3.7考勤查询JSP页426
11.3.8其他考勤页433
11.4开启微信考勤回调模式435
11.5绑定可信域名436
11.6微信考勤应用菜单437
11.7本章小结437
附录A 微信表情转换表438
附录B 返回码说明表441
|
內容試閱:
|
推荐序
随着移动互联网的迅猛推广,尤其是微信等移动社交平台的快速普及,企业运营协作模式也在发生深刻变化,企业信息化走向移动已经成为十分紧迫的课题。诞生于桌面PC时代的企业信息化目前还主要应用于桌面环境,移动化可以将信息接入从桌面向智能终端大大延伸,从而突破固有的终端种类、接入时间和地点的局限性,可以实现企业信息化真正的无缝闭环,这无疑是企业信息化发展历程中的一次质的飞跃。
企业移动信息化的实现途径多种多样,从最初的WAP网站方式到后来的智能App模式,再到轻应用模式,技术实现方式背后蕴藏着各种企业信息化要素的平衡和优化,这些要素包括用户体验、开发成本、企业信息安全、推广效率,等等。微信企业号正是可以满足这些要素的优秀解决方案,因此甫一推出就立刻受到了广泛的关注和认可。
在用户体验方面,由于企业信息化应用绝大多数涉及的只是信息的浏览和表单的处理,对用户体验的方面要求并不高,因此微信平台提供的轻应用完全可以胜任。从开发成本上考虑,由于微信企业号的开发采取的是跨平台的网页开发技术,而开发跨平台应用,相较于原生App开发无疑可以节省大量的开发和测试成本,对于项目来说,也就意味着可以在较短的时间内实现应用上线,从而迅速产生实际效益。
仅有项目开发的多快好省还不行,在数据成为企业新的重要资产的今天,互联网环境下的信息安全成为企业在部署移动化之前不得不考虑的前提。传统的移动信息安全一般要借助于移动设备管理MDM等系统级平台,项目投资大,对于移动设备的侵入性也非常大,对于中小型企业来说,往往难以承受。针对信息安全,微信企业号提供了相对轻量级的安全架构,将内部相对封闭的内部组织架构与个人微信号实现绑定,通过企业号后台可以对进入企业号的微信号进行认证、绑定以及后续的注销,具备基本的用户管理能力,而进一步更严格的认证措施则可以通过企业号的二次开发来实现。
最后再来看一下微信企业号的推广效率。由于微信本身已经成为覆盖绝大多数企业员工的社交平台,企业往往也已经建立了各种微信群或微信公众号,借助于这些传播渠道,微信企业号可以很轻易地获得推广,而且绑定动作相对于App的安装来说轻量且优雅,也不存在App后续的升级更新问题。
综合以上特征,个人认为微信企业号对于信息敏感性不太高的中小企业来说无疑是最适合的企业移动信息化扩展平台。通过在微信企业号上进行一定的二次开发,就可以轻易地使企业内部的信息化系统具备移动化能力。
我们海颐软件正是这样一家中等规模的软件企业,并较早成为了微信企业号的用户。本书的作者正是我们微信企业号的主要开发者。在实际开发过程中,他积累了丰富的知识和经验。相信借助于本书,您可以绕开大部分的困扰和陷阱,帮助您直达目标,迅速构建出令人满意的微信企业号应用来。
李锐
烟台海颐软件股份有限公司 副总经理
前 言
为什么要写这本书?
智能手机的日渐普及不断地推动着移动互联网在各行业的应用,众多的App琳琅满目,App开发也从最初的Native App开发,发展到Native App、Web App等多种开发技术。开发越来越容易,各类客户需求的分散,导致App越来越多,大量功能单一的应用被搁置,成为僵尸应用。越来越多的用户将视线聚集到微信、QQ、新浪微博等超级应用中,在超级应用倍受关注的形势下,Light App应运而生。Light App又被称为轻应用、微应用,是一种无须下载、即搜即用的全功能App,既有媲美甚至超越Native App的用户体验,提升用户群体,又具备Web App快速开发节约开发成本等特性,前景更加广阔。
微信公众号是腾讯公司在微信的基础上推出的,属于Light App的范畴,使广大微信用户无须下载便能够借助微信直接享受个人或企业提供的各类服务。对于企业推广和发展来说,企业可以通过订阅号、服务号打造一个基于微信的服务或推广平台;而对企业内部,企业能够通过微信新推出的企业号实现对内部管理系统的集成,包括:人力资源管理系统、报销管理系统、企业论坛、新闻通知公告、即时通信系统、OA协同办公等系统,使各类系统移动化,提高工作效率。
企业号能够高效地帮助政府、企业及组织构建自己独有的生态系统,随时随地连接员工、上下游合作伙伴及内部系统和应用,实现业务及管理的互联网移动化。2014年9月企业号进行公测,2015年笔者因工作需要开始进行微信企业号开发,当时市面上基本没有企业号开发的相关文章,笔者先后完成多个企业号项目开发,编写数个微信企业号建设方案,并在CSDN发布了几篇博文,收到许多读者和企业的来信。随着企业号近两年的发展,越来越多的企业想开发企业号,企业号开发人员也受到软件公司的青睐。
为了把微信公众平台开发经验以及企业号的运用更详细、系统地分享出来,笔者在源智图书李幸编辑的鼓励下编写了这本书,希望认识更多的IT人才。
本书内容及知识体系
第1篇 微信企业号概述及开发基础知识(第1~2章)
本篇介绍了微信公众平台企业号概述以及微信企业号开发环境的配置和开发基础知识,主要包括微信公众号的区别、企业号的发展与注册、配置微信开发环境、JCE安全策略的调整、微信调试工具的安装与使用、HttpClients服务请求调用、域名发布使用以及Properties文件配置等。
第2篇 典型模块开发(第3~7章)
本篇介绍了微信开发各种模式下接口调用及开发实现,主要包括AccessToken申请、Token缓存处理、各类消息的主动推送、素材管理、开启回调模式、消息的接收与响应、ECharts运用、语音导航实现、WebSocket连接实现、SPA开发、企业IM与微信的对接、通讯录异步任务维护以及现场业务上报实现等。
第3篇 微信数据安全及数据库基础(第8~9章)
本篇主要介绍了微信公众号数据安全访问的方式策略,主要从软件开发角度实现数据的传输,通过识别浏览、OAuth 2.0身份验证、页面访问有效期、QPID以及前置机代理服务等方式实现数据的传输。
第4篇 项目案例实战(第10~11章)
本篇主要以案例的方式介绍了微信企业号应用的开发过程,从应用创建到应用开发实现,一步步带领读者学习企业号开发,学习企业资讯、微信考勤等应用的实现。
适合阅读本书的读者
需要全面学习微信企业号开发技术的人员;
微信公众号开发技术人员;
微信单页面应用开发人员
Java程序员;
Java EE开发工程师;
希望提高微信项目开发水平的人员;
专业培训机构的学员;
微信企业号应用开发项目经理;
需要一本微信功能查询与实现手册的人员。
阅读本书的建议
没有微信开发经验的读者,建议从第1章顺次阅读并演练每一个实例。
有一定微信开发基础的读者,可以根据实际情况有选择地阅读各个模块和项目案例。
对于有微信公众号项目经验或者对单页面应用开发有兴趣的读者,可以重点阅读第5章JS-SDK的相关开发。
阅读时建议首先阅读一遍书中的模块和项目案例,然后从Hello World写起,千里之行,始于足下。大到每个案例,小到每行代码,哪怕简单的变量定义也在SDK中书写一遍,这样不仅能够提高代码速度、效率,而且理解起来也会更加深刻、容易。
致谢
感谢微信创始人张小龙先生及其团队创造了微信这一优秀的平台;
感谢海颐软件李锐、宋庆伟、于洋提供的微信公众账号开发机遇;
感谢徐国智、李明、马金刚在技术上的启蒙与指导;
感谢于春洋在我写书期间在生活上给予的鼓励与帮助;
感谢身边的同事以及广大IT网友对这本书的支持与鼓励。
|
|