python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

时间:2024-04-10 21:18:33

0.安装requests模块

Linux下执行

pip3 install requests

 

1.request简介

Reqest是Python的HTTP库,内部采用urillib3模块,但是用起来比urllib3更简洁,需要单独安装

 

2. request特性

-支持keep-alive的连接池

-支持通用的域名以及URL地址

-支持使用cookie

-支持使用类似游览器的SSL验证

-支持上传,下载

 

3.GET和POST

通过requests发送一个GET请求,需要在URL里请求的参数可通过params传递         

r=requests.get(url="",params={},header={},cookie={})

与GET不同的是,POST请求新增加了一个可选参数data,需要通过POST请求传递的body里的数据可以通过data传递

r=requests.post(url="",data={},params={},header={},cookie={})

 

当访问一个URL时,我们经常需要发送一些查询字段,例如http://xxx.com/get?key=1,这里的key=1就是限定返回条件的参数键值对,当利用python的reqeusts去发送一个需要包含这些参数键值对时,可以将它们传给params。好处是安全和简洁

payload={'key1':'value1','key2':'value2'}

r=request.get('http://xxx.com/get,params=payload')

 

4.PUT,DELETE,HEAD以及OPTIONS

r=request.put('www.baidu.com/put',data={'key':'value'})

r=request.delete('www.baidu.com/delete')

r=request.head('www.baidu.com/get')

r=request.options('www.baidu.com/get')

 

5.设置头部和发送请求数据

用户也可以自己设定请求头,有时也需要将一些数据放在请求的body内,就需要对data传参了(仅POST,DELETE,PUT有效,GET请求无body)

url='https://api.gihub.com/some/endpoint'

headers={'Accepet':'application/json'}

payload={'key1':'value1','key2':'value2'}

r=request.post(url,headers,data=payload)

 

6.响应内容

读取服务器响应的内容

r=request.get('http://www.baidu.com')

查看内容:r.text r.content

查看编码:r.encoding

修改编码:r.encoding='utf8'

查看响应头:r.headers

内置json解码器:r.json()

 

实验--在钉钉中创建群聊机器人

1.注册钉钉账号(有跳过)

没有钉钉的话先注册

【官网】https://www.dingtalk.com/oasite/register_new.htm?source=1001&lwfrom=2017120202092064213045501#/

2.下载钉钉客户端

下载安装后打开到这个界面

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

 

3.配置钉钉机器人 

点击

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

选择机器人管理

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

选择自定义机器人webhook

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

输入名字,选择一个群发组

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

安全设置选ip地址,填你要执行脚本的主机ip(必须是公网ip)

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

创建之后会给你一个Webhook,复制即可

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

 

4.编写脚本

准备一台联网的linux系统主机

  1. [[email protected] localhost day12]# vim dingtalk.py
  2. import json
  3. import requests
  4. import sys
  5.  
  6.  
  7. def send_msg(url, reminders, msg):
  8.   headers = {'Content-Type': 'application/json;charset=utf-8'}
  9.   data = {
  10.        "msgtype": "text", # 发送消息类型为文本
  11.        "at": {
  12.              "atMobiles": reminders,
  13.              "isAtAll": False,                  # 不@所有人,如果要@所有人写True并且将上面atMobiles注释掉
  14. },
  15.        "text": {
  16.              "content": msg, # 消息正文
  17. }
  18. }
  19.    r = requests.post(url, data=json.dumps(data), headers=headers)
  20.    return r.text
  21.  
  22. if __name__ == '__main__':
  23.   msg = "这只是一个测试"
  24.   reminders = ['15055667788']                           # 特殊提醒要查看的人,就是@某人一下
  25.   url = 此处填写上面webhook的内容
  26.   print(send_msg(url, reminders, msg))

 

5.执行脚本查看结果 

[[email protected] localhost /]# python3 dingtalk.py

尝试一下@所有人和@单个人

python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)