python 微信提醒_Python自动提醒微信和钉钉孰优孰劣?钉钉编程如何实现?

微信的优点:

平时不用钉钉,只用微信,不用多装一个钉钉应用;

微信提醒非常熟悉;

代码简单。

微信的缺点:

使用前需要扫码登陆,有点麻烦;

向文件传输助手发消息没有提醒,向其他人发消息发现重新登陆后用户名就变了,得重新查询;

听一个程序员朋友说这样用多了,有封号的危险,即使使用小号,封号也麻烦。

钉钉的优点:

直接设置机器人,每次使用不需登陆,更不用担心被封;

提醒声音与微信不同,微信消息多,干扰就多,单独用钉钉来提醒更好(尤其适合平时不用钉钉的朋友)

机器人是在群里的,通过设置群声音更方便,比如静音,或@自己

所以我更倾向于用钉钉提醒了,当然每个人可根据自己的需要选择。

如何用python实现钉钉的消息自动提醒?

官方说明文档在这里:

https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq

添加自定义机器人webhook

完成后就可以看到机器人的Webhook地址

点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如下,后面的xxxxxxxx就是你机器人的id

获取到Webhook地址后,就可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。注意,发起POST请求时,必须将字符集编码设置成UTF-8。

另外还可以实现通过手机号码指定“被@人列表”。

程序实现

可以使用 requests 发送网络请求,要导入 requests 模块,还用到的一个是json,导入。

importrequests

importjson

把刚才你创建的机器人id赋值给robot_id

你要发送的内容赋值给content,以发送文本 (text)为例

上面提到发起POST请求时,必须将字符集编码设置成UTF-8,使用

headers = {"Content-Type": "application/json ;charset=utf-8 "}作为post的头部信息

还需要使用json.dumps()把对象编码成 JSON 字符串

这样就可以使用requests.post(url, data=post_data, headers=headers)来发送信息了。

robot_id='你机器人的id'

content ="测试"

msg = {

"msgtype":"text",

"text": {"content": content}

}

headers = {"Content-Type":"application/json ;charset=utf-8 "}

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

post_data = json.dumps(msg)# 将Python对象编码成 JSON 字符串

status = requests.post(url,data=post_data,headers=headers)

print(status.json())

除了上述两个内容之外,还可以设置@人

是否要@某人,在atMobiles里写上被@人的手机号,也可以在content里添加@人的手机号

是否要@所有人,isAtAll里@所有人时:true,否则为:false

这里只需要把以上两项添加到msg内容中

msg = {

"msgtype":"text",

"text": {"content": content},

"at": {

"atMobiles": [

"139xxxx0217",

"189xxxx8325"],

"isAtAll": False

}

}

当然如果群里只有你一个人,只是为了提醒,上述两个内容其实不需要。

如果你需要多处调用,可以把以上定义成一个函数,这样每次调用时不需要太多语句,也可以为每次调用设置不同的信息。

比如我们把函数设置成:

importrequests

importjson

defsend_text(content,is_at_all=False,at_mobiles=[],robot_id='你机器人的id'):

msg = {

"msgtype":"text",

"text": {"content": content},

"at": {

"atMobiles": at_mobiles,

"isAtAll": is_at_all

}

}

headers = {"Content-Type":"application/json ;charset=utf-8 "}

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

post_data = json.dumps(msg)

status = requests.post(url,data=post_data,headers=headers)

returnstatus.json()

调用时,只需要输入以下三行,内容可以随意编辑

content ='函数测试'

send_msg = send_text(content,is_at_all=False,at_mobiles=["139xxxx0527"])

print(send_msg)

如果你不需要@谁,把第二句里的电话删掉就行了。

send_msg = send_text(content,is_at_all=False,at_mobiles=[])

只要设置一次,下次就可以复制调用了,非常方便。可以设置不同的机器人实现不同目的的提醒,比如

可以设置正常运行提醒的机器人,把这个群设置成静音;

可以设置异常情况提醒的机器人,必须人工去干预;

还可以把异常情况设置成不同的优先级,根据需要@不同的人等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值