首页 » 技术分享 » 企业微信开发

企业微信开发

 

企业微信的认识

  1. 企业微信概念:

    企业微信2016年4月18日,腾讯正式发布全平台企业办公工具“企业微信”。与微信一致的沟通体验,为企业员工提供最基础和最实用的办公服务,并加入贴合办公场景的特色功能、轻OA工具,提供了通讯录管理、应用管理、消息推送、身份验证、移动端SDK、素材、OA数据接口、企业支付、电子发票等API,管理员可以使用这些API,为企业接入更多个性化的办公应用。

  2. 企业微信与微信企业号区别:

    其实两个产品最大的其别就是微信企业号是基于微信,而企业微信是一个独立app。企业微信,倾向于将工作和生活完全分开,以独立app的形式去使用,更有着丰富的办公应用,如预设打卡、审批、日报、公告等OA应用,如果你对这些应用不满足,还可以通过API接入和第三方应用满足更多个性需求。
    区别官方说明:http://kf.qq.com/faq/170104mEjqUV1701043mAR32.html
    有一种说法: 微信企业号要合并到企业微信,然后慢慢淡化微信企业号的概念。

企业微信的功能

企业微信有什么用,介绍企业微信6个强大的功能:https://blog.csdn.net/towtotow/article/details/78920572

  1. 三大产品功能:

    预设轻量OA应用:包括打卡、审批、日报、公告、同事吧等,还有丰富的API接口方便接入更多企业应用。
    企微云OA : http://wbg.do1.com.cn/oa/?utm_campaign=wbg&utm_medium=&utm_source=index
    集成多种通讯方式:有由公司统一付费的公费电话、高清稳定的视频会议、和会话紧密结合的企业邮箱,同步提高沟通效率。
    企微与CRM:http://wbg.do1.com.cn/crm/?utm_campaign=wbg&utm_medium=&utm_source=index
    微信云HR功能:通过人事管理、培训、考试、考勤、工资条等应用,帮助企业HR实现全员工全任职周期的一站式人事管理,有效的提升HR管理效能、降低人事成本。
    企微云HR:http://wbg.do1.com.cn/hr/?utm_campaign=wbg&utm_medium=&utm_source=index

  2. 齐全应用功能:

    功能全面集成至微信及企业微信,30多款内嵌应用,快速搭建办公平台。
    应用介绍:http://wbg.do1.com.cn/apply/superform/?utm_campaign=wbg&utm_medium=&utm_source=index

企业微信的开发

1. 官方API文档:

企业微信 API文档:https://work.weixin.qq.com/api/doc

2. 企业微信开发思路:

企业微信的开发大体可分为以下几步:
(1)封装实体类
参考官方文档给出的请求包、回包(即响应包),封装对应的java实体类。
(2)java对象的序列化
将java对象序列化为json格式的字符串
(3)获取AccessToken,拼接请求接口url
凭证的获取方式有两种(此处暂时存疑,以待勘误):
通讯录AccessToken:CorpId+通讯录密钥
其他AccessToken:CorpId+应用密钥
(4)调用接口发送http请求
封装好http请求方法:httpRequest(请求url, 请求方法POST/GET, 请求包);

3.开始开发:

开发时请留意企业微信与企业号的接口差异:https://work.weixin.qq.com/api/doc#12060
(1) Quick Start
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_Quick-Start
(2) 微信消息路由器
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_微信消息路由器
(3)WxCpConfigStorage
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_WxCpConfigStorage
(4)同步回复消息
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_同步回复消息
(5)刷新access_token
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_刷新access_token
(6)用户身份二次验证
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_用户身份二次验证
(7)主动发送消息
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_主动发送消息
(8)临时素材(多媒体文件)管理
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_多媒体文件管理
(9) 用户管理
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_用户管理
(10)部门管理
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_部门管理
(11)标签管理
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_标签管理
(12)自定义菜单管理
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_自定义菜单管理
(13)OAuth2网页授权
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_OAuth2网页授权
(14)http代理支持
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_http代理支持
(15)如何调用未支持的接口
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_如何调用未支持的接口
(16)如何执行本项目单元测试
https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_如何执行本项目单元测试

可以运行 demo-1 的代码来对weixin-java-tools的有一个更好的了解。
项目demo-1: https://github.com/Wechat-Group/weixin-java-tools
启动方式: https://github.com/Wechat-Group/weixin-java-tools/wiki/CP_demo代码

4. 可能遇到的异常:

异常整理引用博客园作者整理
企业微信开发整理:http://www.cnblogs.com/shirui/category/1053578.html
参考demo-2:https://github.com/shirayner/WeiXin_QiYe_Demo/tree/master

(1)异常:“errcode”:60011,“errmsg”:"no privilege to access/modify contact/party/agent "处理;

组装json数据时,有些字段的值是不能包含双引号的

       {
           "userid": "zhangsan",
            "name": "张三",
           "english_name": "jackzhang"
           "department": [1, 2],
        }

比如department。所以就没有用JSONObject.fromObject方法了,直接用字符串按照格式自己拼装了。
链接:http://www.cnblogs.com/shirui/p/7367902.html

(2)异常:"java.security.InvalidKeyException: Illegal key size "处理;

不合法秘钥长度异常,原因是jdk安装时自带的JCE策略文件时受限的, 需要将其替换为 JCE无限制权限策略文件。

java.security.InvalidKeyException: Illegal key size

链接:http://www.cnblogs.com/shirui/p/7411735.html

(3)异常:未验证域名归属,JS-SDK功能受限的处理;

https://images2017.cnblogs.com/blog/748623/201711/748623-20171108230927559-1276532792.png

处理方案:将下载的文件放到域名根目录下,勾选“已上传域名归属校验文件”,点击确认即可。
https://images2017.cnblogs.com/blog/748623/201711/748623-20171108231022153-231240638.png
链接:http://www.cnblogs.com/shirui/p/7806888.html

(4)异常: "java.net.UnknownHostException: qyapi.weixin.qq.com“处理;

网络原因导致 dns解析失败。 网络原因导致 dns解析失败。

解决方案链接:http://www.cnblogs.com/shirui/p/8023005.html

(5)异常:"java.lang.OutOfMemoryError: Java heap space“处理;

java.lang.OutOfMemoryError: Java heap space

解决方案链接:http://www.cnblogs.com/shirui/p/8399947.html

(6)异常: "com.qq.weixin.mp.aes.AesException“处理;

解密后得到的buffer非法

方法:POST@ echostr是否存在 :false
java.lang.IllegalArgumentException: 20 > -367029533
    at java.util.Arrays.copyOfRange(Arrays.java:3519)
    at com.qq.weixin.mp.aes.WXBizMsgCrypt.decrypt(WXBizMsgCrypt.java:181)
    at com.qq.weixin.mp.aes.WXBizMsgCrypt.DecryptMsg(WXBizMsgCrypt.java:263)
    .......

解决方案链接:http://www.cnblogs.com/shirui/p/8513684.html

Dedo整理

1.可能是目前最好最全的微信Java开发工具包(SDK)

包括微信支付、开放平台、公众号、企业微信、企业号、小程序等
Github链接:demo-1:https://github.com/Wechat-Group/weixin-java-tools

2.企业微信开发Dome:纯java+servlet实现,以后会尝试用ssm框架来实现。

Github链接:demo-2:https://github.com/shirayner/WeiXin_QiYe_Demo/tree/master

3.企业微信QuickStart扩展Dome:基于Spring Boot构建,实现微信企业号开发功能。

Github链接:https://github.com/binarywang/weixin-java-cp-demo

转载自原文链接, 如需删除请联系管理员。

原文链接:企业微信开发,转载请注明来源!

0