O2OA平台拥有配套的原生开发的安卓和IOS移动APP,可以以自建应用的方式集成到企业微信,同步企业微信的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到企业微信进行消息提醒。本篇主要介绍如何将O2OA集成到企业微信实现微信办公。
如果O2OA成功接入企业微信,O2OA将会自动从企业微信拉取所有的人员和组织进行同步,O2OA的所有人员和组织以企业微信中创建的组织架构为准( 本地已经创建的人员和组织将保留不会被删除,可能会造成人员和组织重复 )。
O2OA接入企业微信建议先配置好企业微信应用,待组织和人员从企业微信同步完成后,再进行组织和人员的信息编辑,避免人员和组织信息的重复创建。
注册地址:https://work.weixin.qq.com/,此过程需要提供使用微信的企业相关信息。
注册成功后,使用管理员账号登录企业微信,在[我的企业]信息最后一行可以获取企业的CropId,如下图所示:
在管理工具 - 通讯录同步配置里进行API信息查询和配置
特别说明:
2022-08-22,企业微信已经调整了API的调用权限,这个日期之后新创建的应用将不能再继续使用通讯录应用的secret调用通讯录的API。具体参考企业微信文档说明 :https://developer.work.weixin.qq.com/document/path/96079
新创建的应用 syncSecret 直接使用企业自建应用的secret,具体请往下看自建应用的内容。
注册成功后,使用管理员账号登录企业微信,如下图所示:
点击[应用与小程序],如下图所示界面:
如上图所示,点击[创建应用],继续在自建程序区域创建应用:
填写好应用相关信息后进行应用创建:填写好应用相关信息后进行应用创建:
应用LOGO:可以自行制作合适大小的LOGO,此LOGO将在企业微信中展示。 应用名称:此应用的具体名称,可以随意命名,如O2OA,企业办公,XXOA都可以。 应用介绍:此应用的具体用途介绍。 可见范围:可使用此应用的人员范围设定,可以选择组织和个人成员。新创建的应用和同步通讯录有关系,这里要选择顶层组织。
应用创建完成后,如下图所示界面:
您可以在界面中获取AgentId和secret信息,这两个信息以及之前获取的CropId将配置到O2OA相关的接入配置中,请牢记此信息。
应用创建完成后需要验证域名,也就是O2OA服务器外网访问的域名需要如下验证。因为企业微信需要通过验证的证明这个域名地址是属于开发者所有。才能进行后续单点认证等操作。
工作台应用主页
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=https%3A%2F%2F[host][port]%2Fx_desktop%2Fqiyeweixinsso.html%3Fredirect%3Dportalmobile.html%3Fid%3D*********&response_type=code&scope=snsapi_base&agentid=1000004&#wechat_redirect
其中:
appid : 企业的corpId host : O2OA服务器提供服务的域名 port : O2OA服务器提供服务的端口 AgentId : 应用的agentId redirect_uri参数需要使用urlencode进行编码,不然会遇到50001错误,redirect_uri不是可信域名。 这个url是:http://[host]:[port]/x_desktop/qiyeweixinsso.html?redirect=portalmobile.html?id=************ 这样的形式。后面跟了一个redirect参数,就是需要跳转到一个门户页面,id就是门户的id,不配置这个参数也行,进入的是一个默认的待办列表页面。
新版自建应用增加了企业可信IP配置,因为O2OA需要同步通讯录以及和企业微信进行单点认证,所以O2OA需要调用企业微信的API,这时候需要在企业可信IP中配置你的O2OA服务器所在的外网IP。否则,O2OA将无法调用企业微信的API进行交互。
第四步创建应用后,里面有一个secret,配置到O2OA里的CropSecret信息,具体参数说明在第六步:
1、进入o2oa安装目录,从o2server/configSample 目录下拷贝 qiyeweixin.json 到 o2server/config 目录(如果已经复制过了,请跳过此步骤);
2、使用文本编辑器打开qiyeweixin.json进行编辑:
{ "enable": false, "syncCron": "10 0/10 * * * ?", "forceSyncCron": "10 45 8,12 * * ?", "apiAddress": "https://qyapi.weixin.qq.com", "corpId": "", "syncSecret": "", "corpSecret": "", "agentId": "", "token": "", "encodingAesKey": "", "workUrl": "", "messageRedirectPortal": "", "messageEnable": false, "scanLoginEnable": false, "attendanceSyncEnable": false, "attendanceSyncAgentId": "", "attendanceSyncSecret": "", }
参数说明:
"enable": "是否启用企业微信接入: true | false", "syncCron": "企业微信回调信号读取的定时器, 默认每10分钟同步一次(10 0/10 * * * ?).", "forceSyncCron": "同步企业微信通讯录的定时器, 默认在每天的8点和12点进行同步(10 45 8,12 * * ?)", "apiAddress": "企业微信api服务器地址, https://qyapi.weixin.qq.com", "corpId": "企业微信参数corpId", "syncSecret":"企业微信同步通讯录的Secret,新版应用使用下面corpSecret一样的secret", "corpSecret": "企业微信自建应用的secret", "agentId": "企业微信自建应用的AgentId", "messageEnable": "是否允许推送消息到企业微信: true | false", "token":"回调token", "encodingAesKey": "回调encodingAesKey###", "workUrl":"这个参数是为了企业微信推送的工作消息开启超链接功能,这里配置o2oa服务器地址, 如:http://dev.o2oa.net/x_desktop/", "messageRedirectPortal":"这个参数是配置一个门户id,是上面工作消息打开后处理完成跳转的门户页面", "scanLoginEnable": "企业微信扫码登录###", "attendanceSyncEnable": "是否启用考勤信息###", "attendanceSyncAgentId": "企业微信考勤打卡应用id###", "attendanceSyncSecret": "企业微信考勤打卡应用secret###"
完成以上配置后重启O2OA,即可完成O2OA在企业微信中的接入。
服务地址:http://o2oa服务器域名:中心服务端口/x_program_center/jest/index.html
服务名称:QiyeweixinAction.pullSync
如下图所示界面,点击GET之后,观察服务器控制台或者日志文件信息(o2server/logs),可以查看到同步日志。
不要多次点击GET,点击一次后,控制台会有正在拉取组织人员信息相关的日志。
如果同步成功,就可以打开企业微信,点击前面创建的自建应用,就会完成单点认证并进入到O2OA的办公中心页面。