【办公自动化】钉钉机器人每日定时向不同群组发送消息

        实现每日上午10点自动向各供应商群同步前一日产品数据。通过python+钉钉机器人实现该功能。具体步骤如下:

目录

1.创建机器人获得token

2.编写脚本

2.1 数据整理

2.2 消息发送

3.设置定时任务


1.创建机器人获得token

群设置-->智能群助手-->添加机器人-->自定义(通过Webhook接入自定义服务)-->添加

 进入下图页面:

机器人名字:自定义

安全设置:有3种安全设置方式,选其一即可。3种方式的区别即具体使用规则可参考钉钉官方文档。

自定义机器人安全设置 - 钉钉开放平台

本文采用关键字实现。配置好后点击完成。复制出现的Wehook链接即完成机器人设置。

注:在后续消息发送的文本中必须包含该关键字才可发送成功。

 

2.编写脚本

2.1 数据整理

将需要发送的数据整理加工好,写到脚本中。数据加工的方式有多种,本文采用Pandas同步数据,以下代码仅供参考:

# Step1:数据处理
import pandas as pd

# 1.1.读取文件
file_path = r"C:\Users\Administrator\Desktop\ding_message_send\供应商拨打接通率排名.csv"

data = pd.read_csv(file_path, encoding='utf-8', header=0)

# 1.2.获取排名及接通率数据
data_list = []
for i in range(data.shape[0]):
    supplier_name = data.iloc[i, 0]
    get_through_rate = data.iloc[i, 1]
    delta = data.iloc[i, 2]
    today = data.iloc[i,3]
    data_dict = {
        "rank": i+1,
        "supplier_name": supplier_name,
        "get_through_rate": float(get_through_rate*100),
        "delta": float(delta*100),
        "today":today
    }
    data_list.append(data_dict)

2.2 消息发送

消息发送有2种方式:

方式1:安装封装好的DingtalkChatbot 模块

pip install DingtalkChatbot

具体使用方法链接如下:

GitHub - zhuifengshen/DingtalkChatbot: 钉钉群自定义机器人消息Python封装

本文应用场景是每日向6家供应商同步数据,使用循环实现该功能,代码参考如下:

参数说明:supplier1~6:对应的机器人的关键字;token1~6:对应的机器人的token

                 is_at_all:是否at所有人

# Step2:消息发送
from dingtalkchatbot.chatbot import DingtalkChatbot

# WebHook地址
webhook_dict = {
    'supplier1': "https://oapi.dingtalk.com/robot/send?access_token=token1",
    'supplier2': "https://oapi.dingtalk.com/robot/send?access_token=token2",
    'supplier3': "https://oapi.dingtalk.com/robot/send?access_token=token3",
    'supplier4': "https://oapi.dingtalk.com/robot/send?access_token=token4",
    'supplier5': "https://oapi.dingtalk.com/robot/send?access_token=token5",
    'supplier6': "https://oapi.dingtalk.com/robot/send?access_token=token6"
    }

for supplier in data_list:
    if supplier["supplier_name"] in webhook_dict.keys():
        chatbot = DingtalkChatbot(webhook_dict[supplier["supplier_name"]])
        message = "{}\n{} 昨日接通率: {:.2f}%, 排名: {} (共6家),  较前一日变化: {:.2f}%".format(supplier["today"],supplier["supplier_name"],
        supplier["get_through_rate"],supplier["rank"],supplier["delta"])
        if supplier["delta"] < 0:
            message = message + "\n温馨提示: 接通率有所下滑, 请加强线路侧运营, 避免外呼份额减少!"
            chatbot.send_text(msg=message, is_at_all=False)
        else:
            message = message + "\n温馨提示: 接通率有所上涨, 切勿掉以轻心, 继续保持!"
            chatbot.send_text(msg=message, is_at_all=False)

方式2:通过导入requests库实现

以下代码仅供参考

import requests

# 编辑内容
content = {
    "msgtype": "text",
    "text": {"content": 'test 排名是:{0},昨日接通率是:{1},较前一日变化:{2}'.format(list1[0],list1[1],list1[2])},
    "at": {"isAtAll": True}
}

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

# 发送post请求
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=webhook_token'
r = requests.post(url=webhook, json=content, headers=headers)   
print(r.content.decode)

3.设置定时任务

对于Mac/Win有不同的方式来实现定时任务设置,win可采用图形化界面设置,具体方式如下:

计算机管理-->任务计划程序-->创建任务

按顺序依次配置:

step1常规:配置任务名称

step2触发器:设置时间

 step3操作:选择执行的脚本及文件位置

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
发送图片到钉钉机器人,可以使用钉钉机器人的自定义机器人API接口。下面是一个发送图片的示例代码: ```python import requests url = 'https://oapi.dingtalk.com/robot/send?access_token=<your_access_token>' headers = { 'Content-Type': 'application/json;charset=utf-8' } data = { "msgtype": "image", "image": { "media_id": "<media_id>" } } response = requests.post(url, headers=headers, json=data) print(response.text) ``` 其中,`<your_access_token>` 是你的钉钉机器人的访问令牌,`<media_id>` 是你要发送的图片的media_id。可以使用钉钉提供的上传图片接口(https://oapi.dingtalk.com/media/upload?access_token=ACCESS_TOKEN&type=image)上传图片并获取media_id。 除了发送图片,还可以发送文本、链接、Markdown等不同类型的消息。下面是一个发送Markdown消息的示例代码: ```python import requests url = 'https://oapi.dingtalk.com/robot/send?access_token=<your_access_token>' headers = { 'Content-Type': 'application/json;charset=utf-8' } data = { "msgtype": "markdown", "markdown": { "title": "标题", "text": "## 标题二 \n\n **加粗文本** \n\n *斜体文本* \n\n [链接](http://www.baidu.com)" } } response = requests.post(url, headers=headers, json=data) print(response.text) ``` 其中,`title` 是消息标题,`text` 是Markdown格式的消息内容。 以上是发送图片和Markdown消息的示例代码,你可以根据自己的需求修改代码和消息类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值