概述
1.企业应用和第三方应用的区别
2.课程讲授的内容
《入门篇》
1.自建应用和第三方应用的区别
自建应用:自己开发自己用【这种方式比较简单,可以简单创建一个试一下】
第三方应用:我们作为服务商,开发给其他企业使用
2.创建第三方应用【主要提供回调服务】
(一)配置参数说明
企业微信应用接入指引 - 接口文档 - 企业微信开发者中心
(二)开发提供指令回调url
回调配置 - 接口文档 - 企业微信开发者中心
A:快速开发一个nodejs服务

B:使用签名和加解密库【包括get和post】
@wecom/crypto - npm
C:需要将服务提供到公网,企微才能回调
这里需要配置内网穿透
1.natapp: https://www.jianshu.com/p/7dfa336b0fec
2.frp: https://www.cnblogs.com/chywx/p/10939966.html
D:解析出suite_ticket,并缓存

E:获取第三方应用的token【这里使用postman调试】
第三方应用接口 - 接口文档 - 企业微信开发者中心

3.安装的五种方式
(一)上架到应用市场(需要上架)==>这种方式与方式二推送一样

(二)在服务商后台点击安装测试(不需要上线)

(三)在服务商后台通过推广二维码安装(需要上线)

(四)在服务商后台通过推广二维码包id,生成推广链接(需要上线)


构建注册链接:
推广二维码(原注册定制化) - 接口文档 - 企业微信开发者中心
第一步:获取注册码

第二步:构建注册链接
(五)应用授权安装链接(不需要上线)


构建授权安装链接
企业授权应用 - 接口文档 - 企业微信开发者中心
第一步:获取预授权码
第二步:提供redirect_uri服务,引导用户进入授权页
redirect_uri = http://api.feelok.top:6001/getCompanyAuthCode

这个授权链接一定需要用户点击,不能直接在浏览器上访问
第三步授权成功,返回临时授权码

(六)总结:
?? A.共同点与区别
共同点:
所有方式都是在安装应用后,会给我们服务商提供企业临时授权码
区别:
只有应用授权安装链接是通过redirect_uri推送企业临时授权码,
其他的方式都是通过指令回调url推送企业临时授权码
授权通知事件 - 接口文档 - 企业微信开发者中心
? B.获得了企业临时授权码,我们就有能力获得企业信息了

a.企业安装后,会通过指令回调接口推送企业临时授权码? 或者?? 通过redirect_uri传递企业临时授权码

b.通过临时授权码换取企业永久授权码
获取企业永久授权码 - 接口文档 - 企业微信开发者中心

c.有了企业id和永久授权码,就可以获得企业的token,也就是可以调用企业相关的接口了

4.获取部门和人员
(一)获取部门信息
获取部门列表 - 接口文档 - 企业微信开发者中心

(二)获取成员信息
获取部门成员 - 接口文档 - 企业微信开发者中心

5.授权登录
开始开发 - 接口文档 - 企业微信开发者中心
(一)构建oauth2授权链接

(二)根据code获取用户身份

(三)获取用户详细信息

6.获取客户和客户群
(一)获取用户的客户
获取客户列表 - 接口文档 - 企业微信开发者中心

(二)获取客户群
获取客户群列表 - 接口文档 - 企业微信开发者中心

7.扫码登录和业务设置url登录
接入指引 - 接口文档 - 企业微信开发者中心
(一)扫码登录
A.构建登录二维码
https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=xxxxxxxx&redirect_uri=http%3A%2F%2F%2Fapp&state=web_login@gyoss9&usertype=admin
B.通过redirect_uri获得auth_code

C.获得服务商token

D.通过auth_code获得用户信息
获取登录用户信息 - 接口文档 - 企业微信开发者中心

注意:


(二)业务设置url登录
A.配置业务url【在服务商应用的详情页面】

B.点击进入服务商后台,获得auth_code


C.获得服务商token

D.通过auth_code获得用户信息
获取登录用户信息 - 接口文档 - 企业微信开发者中心

8.消息推送
(一)获取成员id
(二)推送消息
发送应用消息 - 接口文档 - 企业微信开发者中心

9.网页jssdk调用
使用说明 - 接口文档 - 企业微信开发者中心
【调用一下选人api和打开会话api】

(一)获取jsapi_ticket【企业和应用】

(二)签名【一样的】

(三)前端配置【分企业和应用】

(四)前端调用jsapi【一样的】
调用就比较简单了!!!
(五)这里的坑
1.获取应用的jsapi_ticket也是使用企业的token
2.传递url的时候需要前端encode一下,后端接受后再decode一下;否者会丢失一些东西
《实战篇》

1.创建一个第三方应用
回调域名等,可以先随便写一个,先把应用创建起来
2.提供指令回调
(一)快速搭建一个node服务
a.安装express:npm install -g express-generator
b.输入express 初始化node服务
c. 启动项目
npm i
npm start
d.在浏览器中测试一下
(二)完成回调接口
a.创建一个callback的get接口和post接口
b.根据文档实现get接口
c.根据文档实现post接口
回调配置 - 接口文档 - 企业微信开发者中心
(三)内网穿透
这里就怎么简单怎么来把,我们就使用natapp的方式吧
(四)将suite_ticket存入数据库
a.解析出suite_ticket【需要用到工具xmlreader】
b.创建一个数据库以及缓存suite_ticket表
c.将suite-ticket放入表中
3.提供前端页面和后端页面
(一)创建前后端系统页面
(二)将页面目录设置为静态目录
4.每次在获得suite_ticket的时候,获得sui_token,并保存到数据库
(一)获得suite_token
(二)保存到数据库中
5.企业安装授权应用,后端获取企业临时授权码,并且根据临时授权码获得永久授权码和企业id【永久授权码和企业id需要保存到数据库】
(一)创建保存企业信息的表
字段包括:corpId , corpName , permanent_code,agentid
agentid:这个字段在消息推送的时候会用到!!!
(二)获得企业授权时推送的企业临时授权码
【这是使用最简单的安装测试按钮,实现企业临时授权码推送】
(三)根据临时授权码获得永久授权码
(四)将企业id和永久授权码存入数据库中
6.根据永久授权码和企业id获得企业token,将企业的部门和成员同步到我们数据库中
(一)创建成员信息表
字段包括: userId , 部门id , 企业id,企业名称
(二)获得企业token
【这一步可以在获取永久码的时候直接获取到,这一步就可以省掉了】
(三)获得部门
(四)根据部门id,获得成员id,并存入数据库
7.前后端系统完成授权登录
(一)配置应用主页,实现移动端系统的登录
?? A.配置应用主页,获取code
?? B.前端页面提供登录按钮,调用后端登录接口
?? C.提供一个登录接口【通过code获得用户信息,然后校验userId是否在我们系统,从而判断用户是否能够登录】
(二)配置业务设置url,实现pc端系统的登录【与扫码登录一致的】
?? A.配置业务设置url,pc端页面获得授权auth_code
?? B.后端页面提供登录按钮,调用后端登录接口
?? C.提供后端登录接口【1.获得服务商token? 2.获得根据code获得用户信息 3判断用户信息是否在数据库表中】
(三)扫码登录进入pc端系统
?? A.创建一个服务商的官网页面【一般服务商页面会有三个按钮】

B.构建安装应用链接:【https://developer.work.weixin.qq.com/document/path/90597】
这里一定要注意,在获取预授权码之后,需要调用一下授权码配置接口
C.构建注册按钮【https://developer.work.weixin.qq.com/document/path/90578】
注册需要上线后才能获得推广包id,根据推广包获得注册码;这里只是做一下代码实现;后面线上了直接改一下推广包id即可
注意:这种注册链接并不属于登录的方式,只是一般服务商网站都会提供这种注册按钮;只是用于推广企业微信,让别人安装企业微信顺带将我们的第三方应用自动安装上而已
D.构建扫码链接【https://developer.work.weixin.qq.com/document/path/91124】
? 这里不需要通过代码生成,直接拼接即可
E.点击测试登录
8.前端系统完成jssdk调用
(一)从登录接口中获取corpId
(二)获取企业jsapi_ticket
JS-SDK使用权限签名算法 - 接口文档 - 企业微信开发者中心
(三)获取应用jsapi_ticket
(四)完成企业和应用参数签名
(五)前端系统获得两种签名数据,进行配置注入,引入jssdk文件
(六)完成选人获取人员userId
(七)打开选中人的聊天会话
9.后端系统对前端系统推送消息
(一)获得进入后端系统的人员信息
(二)根据当前登录用户所在企业,查找数据库表中的成员
(三)使用通讯录展示组件展示成员
通讯录展示组件 - 接口文档 - 企业微信开发者中心
(四)开发发送消息页面
(五)调用发送消息接口发送消息
10.应用上线
我们实际操作一下
11.应用上架

同步视频教程>> https://www.bilibili.com/video/BV1zP4y1M7LV?spm_id_from=333.999.0.0
|