python通过钉钉接口获取钉钉企业的信息。
1. 安装钉钉sdk
pip install dingtalk-sdk
2. 在钉钉的开发者平台配置开发者权限,拿到corpId和secret
CORP_ID = 'XXXXXXXXXXXXXXXXXXXX'
SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
3. 连接
from dingtalk import SecretClient
client = SecretClient(CORP_ID, SECRET)
4. 获取部门信息(client.department)
list
(_id=1, lang='zh_CN', fetch_child=False)
获取部门列表
参数: |
|
---|---|
返回: | 部门列表数据。以部门的order字段从小到大排列 |
def getdepartments(departmentid):
'''
:param departmentid: 部门id,默认是1,即是获取所有的部门
:return:departmentid下所有部门的id,namehe parentid
'''
result = []
responses = client.department.list(departmentid, fetch_child=True)
for response in responses:
result.append({'id', response.get('id'),
'name', response.get('name'),
'parentid', response.get('parentid')})
print(result)
return result
get
(_id, lang='zh_CN')
获取部门详情
参数: |
|
---|---|
返回: | 部门列表数据。以部门的order字段从小到大排列 |
def getDepartmemtInfo(departmentid):
'''
:param departmentid:部门id
:return: 部门信息
'''
responses = client.department.get(departmentid)
print(responses)
return responses
5. 获取用户信息(client.user)
list
(department_id, offset=0, size=100, order='custom', lang='zh_CN')
获取部门成员(详情)
参数: |
|
---|
def getuser(departmentid):
'''
:param departmentid: 获取部门下的用户(不包括子部门)
:return: 用户信息
'''
res = []
responses = client.user.list(departmentid)
print(responses)
a = responses.get('userlist')
for response in a:
print(response.get('department'))
res.append({'position', response.get('position'),
'department', str(response.get('department')),
'userid', response.get('userid'),
'isLeader', response.get('isLeader'),
'order', response.get('order'),
'name', response.get('name'),
'jobnumber', response.get('jobnumber')
})
print(res)
return res
5. 智能人事(client.employeerm)
get
(userid)
获取智能人事员工花名册详细数据
参数: | userid – 查询用户userid |
---|
可以获取一些额外的信息,如电话,邮箱等等
def getEmployeeUserInfo(userid):
'''
:param userid:用户钉钉的userid
:return: 用户的花名册(详细信息)
'''
res = client.employeerm.get(userid)
print(res)
return res
6. 获取的具体的流程图如下:
这是一个获取用户信息的功能。
如果需要做修改操作以及一些其他的查询,可以详见dingtalk-sdk的详细接口文档。
具体的dingtalk文档可见:https://dingtalk-sdk.readthedocs.io/zh_CN/latest/client/index.html