python发钉钉信息给通讯录_使用python调用钉钉开放接口,现实给员工单独发送钉钉通知消息...

#-*- coding: utf-8 -*-#@Time : 2020/11/22 12:32#@Author : chinablue#@File : dingtalk_helper.py

importrequestsimportobjectpath#在钉钉上创建应用后获取

AGENT_ID = 123456APP_KEY= "123456"APP_SECRET= "123456"dd_domain= "https://oapi.dingtalk.com"

classDingtalkHelper():def __init__(self):

self.access_token=self.get_token()#获取token

defget_token(self):

url= f"{dd_domain}/gettoken"data={"appkey": APP_KEY,"appsecret": APP_SECRET,

}

res_json= requests.get(url=url, params=data).json()return objectpath.Tree(res_json).execute("$.access_token")#获取部门列表

defget_depList(self):

url= f"{dd_domain}/department/list"data={"access_token": self.access_token,

}

res_json= requests.get(url=url, params=data).json()

departmentIds_list= list(objectpath.Tree(res_json).execute("$..*[@.name is not null].id"))returndepartmentIds_list#获取部门用户userid列表

defget_memberList(self, depId: str):

url= f"{dd_domain}/user/getDeptMember"data={"access_token": self.access_token,"deptId": depId,

}

res_json= requests.get(url=url, params=data).json()returnres_json#获取用户详情

defget_userInfo(self, userId):

url= f"{dd_domain}/user/get"data={"access_token": self.access_token,"userid": userId,

}

res_json= requests.get(url=url, params=data).json()

userIds_list= list(objectpath.Tree(res_json).execute("$..*[@.userid is not null].(mobile, userid)"))

userInfo=userIds_list[0]return {userInfo.get("mobile"): userInfo.get("userid")}#向企业个人发送钉钉通知

defsend_ddMsg(self, userId, build_url, build_result, project_num, build_person, build_time):

url= f"{dd_domain}/topapi/message/corpconversation/asyncsend_v2?access_token={self.access_token}"msg={"msgtype": "oa","oa": {"pc_message_url": build_url,"head": {"bgcolor": "FFBBBBBB","text": build_result

},"body": {"title": f"({build_result})Jenkins Pipeline","form": [

{"key": "项目编号:","value": f"{project_num}"},

{"key": "构建账号:","value": f"{build_person}"},

{"key": "构建时间:","value": f"{build_time}"},

{"key": "构建结果:","value": f"{build_result}"},

],"content": "","image": "@lADOADmaWMzazQKA",

}

}

}

data={"agent_id": AGENT_ID,"userid_list": userId,"msg": str(msg),

}#发送消息

requests.post(url=url, params=data)### 获取公司内所有人员的userId

defgetAll_userIds(self):

deptIds_list=self.get_depList()

userIds_list=list()for deptId indeptIds_list:

res_json=self.get_memberList(deptId)

userIds= objectpath.Tree(res_json).execute("$.userIds")

userIds_list.extend(userIds)returnuserIds_list### 获取公司内所有人员的mobile和userId的映射关系表

defgetAll_usersInfo(self):

userIds_list=self.getAll_userIds()

usersInfo_dict=dict()for userId inuserIds_list:

userInfo=self.get_userInfo(userId)

usersInfo_dict.update(userInfo)return usersInfo_dict

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值