钉钉python的sdk应用

news/2024/7/4 7:14:23

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. 获取的具体的流程图如下:

 

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

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

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


http://www.niftyadmin.cn/n/2813908.html

相关文章

react的使用方法

creatReactApp 1、全局安装 npm install -g create-reate-react-app2、创建react应用 create-react-app react-demo3、进入项目目录 cd react-demo4、下载项目依赖 npm install5、启动项目 npm start6、 显示项目配置 npm run eject创建完项目之后 npm 和yarn都可以加载缓存文…

学习react——django和react的登录,注册

自学react,作为一个只有后端python方面知识的人,看过一点点前端教程基础,学习react还是不轻松的。 记过两天的学习,自制一个简单的登录,注册界面,组件的划分用的还不是熟悉。 登录界面:http:/…

react中子向父传参

父组件 render(){<Tablebox callback{this.changeIndex.bind(this)}/> } changeIndex(index){console.log(index) }子组件 Tablebox render(){let {callback}this.props;return <div classNametableboxonMouseEnter{()>{callback(凌晨两点半)}}></div>}

钉钉python实现审批(通过软件和钉钉审批流的结合)

为了实现工单系统&#xff0c;又不想自己去结合钉钉的组织架构实现一套审批流&#xff0c;所以采用钉钉的审批结合自己的系统去实现工单。 由钉钉实现审批流&#xff0c;软件实现查询&#xff0c;记录工单等。 一、具体流程 二、具体的实现方式 获取token的函数 def getTok…

跨组件传参 react

const Context React.createContext();// console.log(Context.Provider);// 提供者// console.log(Context.Consumer);//使用者//孙子class Son extends React.Component{render(){return <div className"son"><Context.Consumer>{(data)>{return &…

k8s之pod基础(下)

1.2 镜像拉取的策略 IfNotPresent 只有当镜像在本地不存在时才会拉取。&#xff08;先对本地进行排查&#xff0c;本地有该镜像直接使用&#xff0c;本地没有该镜像则选择在仓库中拉取&#xff09; Always 总是从仓库拉取镜像&#xff0c;无论本地是否存在镜像&#xff08…

钉钉python实现审批数据库设计

为了实现工单系统&#xff0c;又不想自己去结合钉钉的组织架构实现一套审批流&#xff0c;所以采用钉钉的审批结合自己的系统去实现工单。 由钉钉实现审批流&#xff0c;软件实现查询&#xff0c;记录工单等。 在上一篇中已经实现了审批流程以及回调函数的实现和整个工单的逻…

高阶组件 基础模板 react

function Dialog(Component){return class extends React.Component{render(){return <Component />}}}class DialogComponent extends React.Component{render(){return <div classNamebox>凌晨两点半</div>}}let DialogDom Dialog(DialogComponent )…