扫码阅读
手机扫码阅读

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

353 2023-09-07


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

钉钉连接器的应用会极大提升办公效率,通过应用和平台自由切换系统也省去了不少麻烦~

如果你还有什么疑问, 或者说有更好的想法, 欢迎与我们共同探讨呀!


原文链接: http://mp.weixin.qq.com/s?__biz=Mzg5MzUyOTgwMQ==&mid=2247501217&idx=1&sn=5e427cb3241de15888bf10c90f663b29&chksm=c02ffe07f7587711cdbe7d22888117310a99e74994a7d51e58f51a9c21fb73c8c839c4003d47#rd