【练习】通过python SDK获取钉钉企业内部应用token&子部门ID列表

该代码示例展示了如何使用钉钉PythonSDK获取应用的access_token,以及通过POST请求获取指定部门的子部门ID列表。首先,通过GET请求拼接URL并获取access_token,接着使用access_token发起POST请求来获取部门管理信息。
摘要由CSDN通过智能技术生成

先上代码

import dingtalk.api
import requests
# 拼接URL,以便用于GET请求
from urllib.parse import urlencode

getToken_url = "https://oapi.dingtalk.com/gettoken"
params = {"appkey": "your_appkey", "appsecret": "your_appsecret"}
query_string = urlencode(params)
full_url = f"{getToken_url}?{query_string}"
# print(full_url)
#获取token请求
req = dingtalk.api.OapiGettokenRequest(full_url)
access_token = ''
try:
    resp = req.getResponse()
    access_token = resp['access_token']
    # print("应用的access_token为:{}".format(access_token))
except Exception as e:
    print(e)

#获取【部门管理V2.0-获取子部门ID列表】POST请求
getDep_IDurl = "https://oapi.dingtalk.com/topapi/v2/department/listsubid"
params = {"access_token": access_token}
headers = {"Content-Type": "application/json"}
data = {"dept_id": "your_dept_id"}

response = requests.post(getDep_IDurl, params=params, headers=headers, json=data)
# print(type(response))
print(type(response.content))
print(response.content)
print("----- ----- ----- -----")
print(type(response.text))
print(response.text)
print("----- ----- ----- -----")
print(type(response.headers))
print(response.headers)
print("----- ----- ----- -----")

print(type(response.status_code))
print(response.status_code)


操作步骤:

【1】下载钉钉python SDK

下载链接:https://open.dingtalk.com/document/resourcedownload/download-server-sdk

【2】将SDK包引入工程

【3】创建测试用例

具体代码如上。

【4】获取应用授权及相关凭证

 【5】返回结果

代码解释说明:

1. 导入必要的库:dingtalk.api和requests。这些库提供了与钉钉API交互所需的功能。

import dingtalk.api
import requests

2. 导入urlencode函数,用于将参数编码为URL格式。这个函数将在后面的步骤中用到。

from urllib.parse import urlencode

3. 拼接URL,用于获取accesstoken。getToken_url是获取accesstoken的URL,params是包含appkey和appsecret的字典。urlencode函数将params编码为URL格式,然后将其与getToken_url拼接起来,得到完整的URL。req是一个dingtalk.api.OapiGettokenRequest对象,用于发送获取accesstoken的请求。access_token是一个空字符串,将在后面的步骤中被赋值。

getToken_url = "https://oapi.dingtalk.com/gettoken"
params = {"appkey": "your_appkey", "appsecret": "your_appsecret"}
query_string = urlencode(params)
full_url = f"{getToken_url}?{query_string}"
req = dingtalk.api.OapiGettokenRequest(full_url)
access_token = ''

4. 发送获取accesstoken的请求,并将返回的access_token赋值给access_token变量。如果请求失败,将打印错误信息。

try:
    resp = req.getResponse()
    access_token = resp['access_token']
except Exception as e:
    print(e)

5. 获取子部门ID列表。getDep_IDurl是获取子部门ID列表的URL,params是包含access_token的字典。headers是包含Content-Type的字典,指定请求的内容类型为JSON。data是包含dept_id的字典,指定要获取子部门ID列表的部门ID。response是发送获取子部门ID列表的请求后返回的响应对象。

getDep_IDurl = "https://oapi.dingtalk.com/topapi/v2/department/listsubid"
params = {"access_token": access_token}
headers = {"Content-Type": "application/json"}
data = {"dept_id": "your_dept_id"}
response = requests.post(getDep_IDurl, params=params, headers=headers, json=data)

6. 打印响应内容的类型、内容、头部和状态码。这些信息将帮助我们了解响应的结构和内容。
 

print(type(response.content))
print(response.content)
print("----- ----- ----- -----")
print(type(response.text))
print(response.text)
print("----- ----- ----- -----")
print(type(response.headers))
print(response.headers)
print("----- ----- ----- -----")
print(type(response.status_code))
print(response.status_code)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值