钉钉工作台免密直登Odoo系统?这样实现!


Odoo
神州数码云基地
在 Odoo 上的尝试、调研与分享
本期作者
许文博
一名致力于
探索技术美与生活美的开发
上一期和大家分享了如何实现用企微扫码快速登录Odoo系统 【 原文链接:“史上最快”登入指南:Odoo系统如何实现企微扫码登录】,钉钉作为另一个日常办公中的便捷效率工具,在Odoo为我们提供各种丰富模块系统时,与Odoo之间又能产生什么样的化学反应?
今天给大家介绍如何通过Odoo钉钉连接器架起两者之间的桥梁,实现钉钉扫码登陆 Odoo系统,同时实现通过钉钉工作台免密登录直接进入Odoo系统!
#1 实现功能
1.钉钉组织用户扫码登录Odoo,节省 Odoo 用户的维护成本。
2.免密码快速登录钉钉工作台应用,方便用户便捷操作使用Odoo系统。
#2 环境配置
1.一台外网能访问的服务器并配置域名,如果想本地调试可使用相关工具进行内网穿透,这样钉钉才能回调到 Odoo以及请求到首页,我这里可以推荐钉钉的内网穿透工具:https://open.dingtalk.com/document/resourcedownload/http-intranet-penetration
2.Odoo 系统配置文件 odoo.conf 必须指定 db_name 数据库名称或者有且仅有一个数据库
3. 钉钉管理后台权限。
#3 实现步骤
应用模块安装
钉钉连接器(dingtalk_connector)应用模块安装,在应用中搜索钉钉点击安装即可。
(如果搜索不出来点击页面中更新按钮更新应用)
Odoo应用配置钉钉平台系统参数
在设置-钉钉中配置参数,如下图所示:
相应参数都可以在钉钉管理后台配置查询找到,具体参数对应如下:
应用跳转url:该参数需要在钉钉开发平台以及odoo连接器中同步配置
钉钉开放平台参数配置
Odoo应用配置钉钉用户Id
首先需要调用钉钉获取用户Id的接口获取用户的钉钉Id,并将用户Id填写至设置-管理用户-用户详情中
应用代码改造
#step1
模型继承res.config.settings构建钉钉配置参数相关字段以调用钉钉api以及跳转地址:
#step2
继承res.users构建用户钉钉id以及定义用户身份认证方法以实现用户身份认证
#step3
登录接口适配:
· 扫码登录页面接口,读取设置中配置好的参数以跳转至钉钉的扫码页
· 钉钉免登接口适配
以上两个接口都需要请求auth接口以认证用户,auth接口中调用了钉钉api获取user_id且重写了用户身份认证以适配扫码登录和免密登录,需要注意的是不同api需要的accessToken不一定一致:
以上就是钉钉连接器的实现方法
不妨试试看~
下面就和大家分享一下钉钉的API文档!
#4 API开发资料
如何调用服务器 api :钉钉开放平台-应用开发-服务端-开发指南
https://open.dingtalk.com/document/orgapp-server/how-to-call-apis
API总览:钉钉开放平台-应用开发-服务端-API总览
https://open.dingtalk.com/document/orgapp-server/api-overview
获取用户token:钉钉开放平台-应用开发-服务端-获取访问凭证-新版服务端api-获取用户个人身份访问凭证-获取用户token
https://open.dingtalk.com/document/orgapp-server/obtain-user-token
获取通讯录个人信息:钉钉开放平台-应用开发-服务端-通讯录管理-新版服务端api-获取用户通讯录个人信息
https://open.dingtalk.com/document/orgapp-server/dingtalk-retrieve-user-information
根据unionid获取用户userid:钉钉开放平台-应用开发-服务端-通讯录管理-服务端api-用户管理
https://open.dingtalk.com/document/orgapp-server/query-a-user-by-the-union-id
获取企业内部应用的access_token:钉钉开放平台-应用开发-服务端-获取企业内部应用的access_token
https://open.dingtalk.com/document/orgapp-server/obtain-orgapp-token
通过免密码获取个人信息:钉钉开放平台-应用开发-服务端-身份验证(免登)-服务端API-通过免登码获取用户信息
https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free
企业内部应用免登:钉钉开放平台-应用开发-服务端-身份验证(免登)-企业内部应用免登钉
https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
实现登录第三方网站:钉钉开放平台-应用开发-服务端-身份验证(免登)-实现登录第三方网站-服
https://open.dingtalk.com/document/orgapp-server/tutorial-obtaining-user-personal-information
钉钉连接器的应用会极大提升办公效率,通过应用和平台自由切换系统也省去了不少麻烦~
如果你还有什么疑问, 或者说有更好的想法, 欢迎与我们共同探讨呀!