钉钉python的sdk应用

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=1lang='zh_CN'fetch_child=False)

获取部门列表

参数:
  • _id – 父部门id(如果不传,默认部门为根部门,根部门ID为1)
  • lang – 通讯录语言(默认zh_CN,未来会支持en_US)
  • fetch_child – 是否递归部门的全部子部门,ISV微应用固定传递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(_idlang='zh_CN')

获取部门详情

参数:
  • _id – 部门id
  • lang – 通讯录语言(默认zh_CN,未来会支持en_US)
返回:

部门列表数据。以部门的order字段从小到大排列

def getDepartmemtInfo(departmentid):
    '''
    :param departmentid:部门id
    :return: 部门信息
    '''
    responses = client.department.get(departmentid)
    print(responses)
    return responses

 

5. 获取用户信息(client.user)

list(department_idoffset=0size=100order='custom'lang='zh_CN')

获取部门成员(详情)

参数:
  • department_id – 获取的部门id
  • offset – 偏移量
  • size – 表分页大小,最大100
  • order – 排序规则 entry_asc 代表按照进入部门的时间升序 entry_desc 代表按照进入部门的时间降序 modify_asc 代表按照部门信息修改时间升序 modify_desc 代表按照部门信息修改时间降序 custom 代表用户定义排序
  • lang – 通讯录语言(默认zh_CN另外支持en_US)
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. 获取的具体的流程图如下:

钉钉python的sdk应用_第1张图片

 

这是一个获取用户信息的功能。

如果需要做修改操作以及一些其他的查询,可以详见dingtalk-sdk的详细接口文档。

具体的dingtalk文档可见:https://dingtalk-sdk.readthedocs.io/zh_CN/latest/client/index.html

你可能感兴趣的:(钉钉python的sdk应用)