阿里钉钉机器人在钉钉群无法单独艾特单人脚本修改

原本脚本执行发送消息正常,但是就死活无法正常艾特单人,尝试艾特所有人正常,于是做了相应的修改,

新增加了第二个参数的变量列表:receiver=sys.argv[2]

#!/usr/bin/python

#-*- coding: utf-8 -*-

#zabbix钉钉报警


import requests,json,sys,os,datetime

webhook="https://oapi.dingtalk.com/robot/send?access_token=**********************************"

#说明:这里改为自己创建的机器人的webhook的值

user=sys.argv[1]

#发给钉钉群中哪个用户

receiver=sys.argv[2]

text=sys.argv[3]

#发送的报警内容

data={

    "msgtype": "text",

    "text": {

        "content": text

    },

    "at": {

        "atMobiles": [

            user

        ],
        "atDingtalkIds": [receiver],
        "isAtAll": 0

    }

}

#钉钉API固定数据格式

headers = {'Content-Type': 'application/json'}

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

if os.path.exists("/var/log/zabbix/dingding.log"):

    f=open("/var/log/zabbix/dingding.log","a+")

else:

    f=open("/var/log/zabbix/dingding.log","w+")

f.write("\n"+"--"*30)

if x.json()["errcode"] == 0:

    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))

    f.close()

else:

    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))

    f.close()

之前userId指定的人写列表测试不成功,userId指定的人,使用atUserIds字段一直不会成功通知,换为atDingtalkIds就可以了。同时,userId的信息也需要拼接再text字段中通过艾特后可以正常艾特,需要更好的优化进行整合告警到监控了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值