实现每日上午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操作:选择执行的脚本及文件位置文章来源:https://www.toymoban.com/news/detail-482046.html
文章来源地址https://www.toymoban.com/news/detail-482046.html
到了这里,关于【办公自动化】钉钉机器人每日定时向不同群组发送消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!