mport requests, jsonclassDingDingCallBack(object):def __init__(self):
self.appsecret=''self.appkey=''self.api_url= "https://oapi.dingtalk.com/gettoken?appkey=%s&appsecret=%s"%(self.appkey,self.appsecret)
self.aes_key= ""self.callbackUrl= "回调url"self.headers={'Content-Type': 'application/json','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36','username':'zhangsan','password':'123456'}defget_token(self):
res=requests.get(self.api_url)if res.status_code == 200:
str_res=res.text
token= (json.loads(str_res)).get('access_token')
returntokendefregist_call_back(self):
url= 'https://oapi.dingtalk.com/call_back/register_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
data={"call_back_tag": ["bpms_task_change", "bpms_instance_change"], #审批回调
"token": "qxN3cm","aes_key": self.aes_key,"url":self.callbackUrl,
}
data1=json.dumps(data)
response= requests.post(url, headers=self.headers, data=data1)print(response)print(response.text)defquery_callback(self):
url= 'https://oapi.dingtalk.com/call_back/get_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
response= requests.get(url, headers=self.headers, )print(response)print(response.text)defupdate_call_back(self):
url= 'https://oapi.dingtalk.com/call_back/update_call_back?access_token={}'.format(self.get_token())
data={"call_back_tag": ["bpms_task_change", "bpms_instance_change","user_add_org","user_leave_org","org_dept_create","org_dept_modify","org_dept_remove"],
"token": "自定义字符串","aes_key": self.aes_key,"url":self.callbackUrl
}
data1=json.dumps(data)
response= requests.post(url, headers=self.headers, data=data1)print(response)print(response.text)defget_fail(self):
url= 'https://oapi.dingtalk.com/call_back/get_call_back_failed_result?access_token={}'.format(self.get_token())
response= requests.get(url, headers=self.headers, )print(response.text)#todo 删除回调
defdelete_callback(self):
url= 'https://oapi.dingtalk.com/call_back/delete_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
result=requests.get(url)print(result)print(result.text)#if __name__ == '__main__':
dingOBJ=DingDingCallBack()#todo 获取钉钉token## dingOBJ.get_token()
#todo 获取回调失败#dingOBJ.get_fail()
#todo 注册回调
#dingOBJ.regist_call_back()
#todo 查询回调事件
dingOBJ.query_callback()#todo 修改回调事件#dingOBJ.update_call_back()
#todo 删除回调
#dingOBJ.delete_callback()