????????實(shí)現(xiàn)每日上午10點(diǎn)自動向各供應(yīng)商群同步前一日產(chǎn)品數(shù)據(jù)。通過python+釘釘機(jī)器人實(shí)現(xiàn)該功能。具體步驟如下:
目錄
1.創(chuàng)建機(jī)器人獲得token
2.編寫腳本
2.1 數(shù)據(jù)整理
2.2 消息發(fā)送
3.設(shè)置定時任務(wù)
1.創(chuàng)建機(jī)器人獲得token
群設(shè)置-->智能群助手-->添加機(jī)器人-->自定義(通過Webhook接入自定義服務(wù))-->添加
?進(jìn)入下圖頁面:
機(jī)器人名字:自定義
安全設(shè)置:有3種安全設(shè)置方式,選其一即可。3種方式的區(qū)別即具體使用規(guī)則可參考釘釘官方文檔。
自定義機(jī)器人安全設(shè)置 - 釘釘開放平臺
本文采用關(guān)鍵字實(shí)現(xiàn)。配置好后點(diǎn)擊完成。復(fù)制出現(xiàn)的Wehook鏈接即完成機(jī)器人設(shè)置。
注:在后續(xù)消息發(fā)送的文本中必須包含該關(guān)鍵字才可發(fā)送成功。
?
2.編寫腳本
2.1 數(shù)據(jù)整理
將需要發(fā)送的數(shù)據(jù)整理加工好,寫到腳本中。數(shù)據(jù)加工的方式有多種,本文采用Pandas同步數(shù)據(jù),以下代碼僅供參考:
# Step1:數(shù)據(jù)處理
import pandas as pd
# 1.1.讀取文件
file_path = r"C:\Users\Administrator\Desktop\ding_message_send\供應(yīng)商撥打接通率排名.csv"
data = pd.read_csv(file_path, encoding='utf-8', header=0)
# 1.2.獲取排名及接通率數(shù)據(jù)
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 消息發(fā)送
消息發(fā)送有2種方式:
方式1:安裝封裝好的DingtalkChatbot 模塊
pip install DingtalkChatbot
具體使用方法鏈接如下:
GitHub - zhuifengshen/DingtalkChatbot: 釘釘群自定義機(jī)器人消息Python封裝
本文應(yīng)用場景是每日向6家供應(yīng)商同步數(shù)據(jù),使用循環(huán)實(shí)現(xiàn)該功能,代碼參考如下:
參數(shù)說明:supplier1~6:對應(yīng)的機(jī)器人的關(guān)鍵字;token1~6:對應(yīng)的機(jī)器人的token
? ? ? ? ? ? ? ? ?is_at_all:是否at所有人
# Step2:消息發(fā)送
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溫馨提示: 接通率有所下滑, 請加強(qiáng)線路側(cè)運(yùn)營, 避免外呼份額減少!"
chatbot.send_text(msg=message, is_at_all=False)
else:
message = message + "\n溫馨提示: 接通率有所上漲, 切勿掉以輕心, 繼續(xù)保持!"
chatbot.send_text(msg=message, is_at_all=False)
方式2:通過導(dǎo)入requests庫實(shí)現(xiàn)
以下代碼僅供參考
import requests
# 編輯內(nèi)容
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'}
# 發(fā)送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.設(shè)置定時任務(wù)
對于Mac/Win有不同的方式來實(shí)現(xiàn)定時任務(wù)設(shè)置,win可采用圖形化界面設(shè)置,具體方式如下:
計(jì)算機(jī)管理-->任務(wù)計(jì)劃程序-->創(chuàng)建任務(wù)
按順序依次配置:
step1常規(guī):配置任務(wù)名稱
step2觸發(fā)器:設(shè)置時間
?step3操作:選擇執(zhí)行的腳本及文件位置文章來源:http://www.zghlxwxcb.cn/news/detail-482046.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-482046.html
到了這里,關(guān)于【辦公自動化】釘釘機(jī)器人每日定時向不同群組發(fā)送消息的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!