钉钉链接到第三方应用

背景

客户需要在钉钉App上通过连接打开自主研发的项目

实现

官网说明文档
点击菜单栏中的”企业自主开发快捷键链接应用“,安照右侧说明操作即可。
在这里插入图片描述

### 集成钉钉第三方授权登录至 FastAPI 应用 为了在 FastAPI 中实现钉钉第三方授权登录,需遵循 OAuth2.0 协议流程。以下是具体方法: #### 准备工作 - 注册成为开发者并创建应用获取 `AppKey` 和 `AppSecret`[^2]。 #### 获取临时授权码 (Authorization Code) 当用户点击登录按钮时,重定向到钉钉提供的OAuth页面,URL结构如下: ```plaintext https://oapi.dingtalk.com/connect/qrconnect?response_type=code&client_id={appkey}&redirect_uri={your_redirect_url}&state=STATE ``` 其中 `{appkey}` 替换为实际的应用 ID;`{your_redirect_url}` 为回调地址,该地址需要提前设置好,并确保能够接收来自钉钉服务器返回的信息;`STATE` 参数可用于保持请求前后状态一致,防止CSRF攻击。 #### 使用 Authorization Code 请求 Access Token 一旦获得用户的同意并通过上述链接成功跳转回指定的回调路径,则可以在查询字符串中找到名为 `code` 的参数值。接着向钉钉发送 POST 请求交换 access_token: ```python import requests def get_access_token(code, app_key, app_secret): url = "https://oapi.dingtalk.com/sns/gettoken" payload = { 'grant_type': 'authorization_code', 'code': code, 'client_id': app_key, 'client_secret': app_secret } response = requests.post(url, data=payload).json() return response.get('access_token') ``` #### 查询用户信息 利用上一步骤得到的 `access_token` 可以进一步调用 API 来获取当前已授权用户的个人信息,比如 openid 或 unionid 等唯一标识符[^3]: ```python def fetch_user_info(access_token): url = f"https://oapi.dingtalk.com/user/getuserinfo?access_token={access_token}" result = requests.get(url).json() user_info = {} if not result['errcode']: user_info["userid"] = result.get("userid") user_info["name"] = result.get("name") # 更多字段可以根据需求自行添加... return user_info ``` 最后,在完成以上操作之后就可以根据实际情况决定是要新建账户还是关联已有账号了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值