python自动登录钉钉_python 接口自动化测试搭建钉钉环境

一,搭建测试报告错误的时候,发送钉钉消息

1,首先在在钉钉上面建立一个群,要确保你的群主

2,建立发送钉钉消息的流程

。进入钉钉群,打开“群设置”

。点击“智能群助手”

。选择“添加机器人”,进入群机器人页面

。选择“添加机器人”,然后跳转页面,选择“自定义”

。进入机器人设置页面,设置机器人的名字,看见Webhook 那一栏,复制下来https://oapi.dingtalk.com/robot/send?access_token=*****

注意:access_token是机器人的token,每个群的机器人token都不一致的,但是前面的接口地址都是一致的

。自定义关键词:

填上自定义的关键词,每次发送消息的时候,消息文本前面都要带上这个关键词

代码如下:

import reuqests

data = {

"msgtype": "text",

"text": {

"content": "测试报警:自动化脚本代码错误,请速度查看" #我用的是“测试”这个关键词,所以所有的的消息文本前面都要带“测试”两个字

},

"at": {

"atMobiles": [self.dingding_mobile, #这个是发送消息的时候,想要艾特那个人,填上联系人的电话号码就行了,我已经参数化了

self.dingding_mobile_2, #同上

self.dingding_mobile_3,  #同上

self.dingding_mobile_4],#同上

"isAtAll": False}} #这个是发送消息的时候是不是要艾特所有人,False是不要,True是要

r = requests.post(url=url, data=json.dumps(data), headers=headers)

print(r.text)

其实很简单的,就等于获取到机器人的接口地址和token,然后按照钉钉开发文件上面的参数要求传参然后发送post秦秋就行了,钉钉开发文件地址是:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

其实发送钉钉警报消息还真不难,麻烦的是要发送一个文件上钉钉群这里,以下我大概的说一下流程

二,Python操控钉钉机器人发送文件

1,首先,你要登录钉钉开发者平台:https://open-dev.dingtalk.com ,注意啊!要钉钉群的注册者或者管理者才能登陆上去,登陆成功后,我们要注意获取几个代码需要用到的参数

2,管理员账号登录开发者平台,应用开发-创建应用-查看详情-appkey;应用里的appsecret,这两个参数,复制黏贴下来准备代码使用

3,查看首页的CorpId,复制黏贴下来准备代码使用

4,打开 https://wsdebug.dingtalk.com/ 然后用钉钉注册人或者钉钉管理员的账号扫码登陆,进入调试模式,然后调用调用 V0.12 {"corpId":"xxx","isAllowCreateGroup":true,"filterNotOwnerGroup":true}

方法获得群聊的 chatid

chatid 参数复制黏贴下来有用

5,最后用管理员或注册人的账号,在指定的钉钉群那里建立智能机器人(创建机器人的步骤“一”上面说过了,就不重复了)

然后就是代码了,

class Dingding_Robot_new():

def __init__(self):

self.appkey=dingding_cfg.appkey

self.appsecret=dingding_cfg.appsecret

self.chatid=dingding_cfg.chatid

def getAccess_token(self):

appkey = self.appkey # 管理员账号登录开发者平台,应用开发-创建应用-查看详情-appkey

appsecret = self.appsecret # 应用里的appsecret

#https://oapi.dingtalk.com/gettoken?appkey=key&appsecret=secret

url = 'https://oapi.dingtalk.com/gettoken'

headers = {

'Content-Type': "application/x-www-form-urlencoded"

}

data = {'appkey': appkey,

'appsecret': appsecret}

r = requests.get( url=url,params=data,headers=headers)

# print(r.text)

access_token = r.json()["access_token"]

print(access_token)

return access_token

def getMedia_id(self):

access_token = self.getAccess_token() # 拿到接口凭证

path = '**********' # 文件路径

url = 'https://oapi.dingtalk.com/media/upload?access_token=' + access_token + '&type=file'

files = {'media': open(path, 'rb')}

data = {'access_token': access_token,

'type': 'file'}

response = requests.post(url, files=files, data=data)

json = response.json()

print(json)

return json["media_id"]

def SendFile(self):

access_token =self.getAccess_token()

media_id = self.getMedia_id()

chatid = self.chatid # 通过jsapi工具获取的群聊id

url = 'https://oapi.dingtalk.com/chat/send?access_token=' + access_token

header = {

'Content-Type': 'application/json'

}

data = {'access_token': access_token,

'chatid': chatid,

'msg': {

'msgtype': 'file',

'file': {'media_id': media_id}

}}

r = requests.request('POST', url, data=json.dumps(data), headers=header)

print(r.json())

if __name__=="__main__":

run=Dingding_Robot_new()

run.SendFile()

你可能感兴趣的:(python自动登录钉钉)