python获取钉钉日志数据_【钉钉 获取所有用户的信息】【python】

该博客介绍了如何使用Python通过钉钉API获取部门列表、部门成员及用户信息,并将这些信息保存到Oracle数据库中。首先,通过获取access_token,然后调用钉钉API获取部门列表、部门成员,接着获取每个用户的详细信息,最后更新数据库中对应用户的DingTalk ID。
摘要由CSDN通过智能技术生成

from imp import reload

import requests

import json

app_key='XX'

app_secret='XX'

agent_id='XX'

corp_id='XX'

def getAccess():

url = "https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}".format(app_key,app_secret)

jo = json.loads(requests.get(url).text)

return jo['access_token']

def getDp(token):

url = "https://oapi.dingtalk.com/department/list?access_token="+token

print(url)

dp = json.loads(requests.get(url).text)

print(dp)

return dp['department']

def getUsers(token,deptId):

url = "https://oapi.dingtalk.com/user/getDeptMember?access_token={0}&deptId={1}".format(token,deptId)

users = json.loads(requests.get(url).text)

return users['userIds']

def getUserInfo(token,userId):

url = "https://oapi.dingtalk.com/user/get?access_token={0}&userid={1}".format(token,userId)

info = json.loads(requests.get(url).text)

return info['name'],info['userid']

# token

token = '661d389941293ed68edaed413731a1c8'

token = ''

if token=='' :

token = getAccess()

dp = []

if len(dp)==0:

dp = getDp(token)

import cx_Oracle

def save(id,name):

sql = 'update t_user set dingtalk = \'{0}\' where name =\'{1}\' '.format(

id,name)

print('sql:'+sql)XXX

db = cx_Oracle.connect([email protected]:1521/XXX') # 连接数据库

# print(db.version) # 打印版本看看 显示 11.2.0.1.0

try:

cur = db.cursor() # 游标操作

cur.execute(sql)

db.commit()

print("db success")

except Exception as e:

print("DB Exception:=>")

print(e)

finally:

db.close

for d in dp:

print("开始 部门:"+(d['name'])+'------>')

if d['id']==1:

continue;

users = getUsers(token,d['id'])

for u in users:

username, id = getUserInfo(token, u)

print( 'userId:' + u+' '+username + ':' + id )

save(id,username)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值