钉钉机器人自动回复消息_用Python自动发送钉钉数据消息
作者:王向君,一個不會運營的數(shù)據(jù)分析師不是好產(chǎn)品經(jīng)理
博客:zhihu.com/people/chen-guan-xi-11-65
現(xiàn)在大部分公司都使用釘釘作為內(nèi)部的主要溝通工具,釘釘消息基本都上都能快速有效的被閱讀,打開率會比郵件高上不少。所以準(zhǔn)備使用釘釘來播報平臺每日的成交額,并附上一些鼓勵的話和圖片,起到激勵團隊的作用。
首先在要發(fā)送的群的群設(shè)置中添加一個自定義機器人,并復(fù)制機器人的webhook也就是代碼中要用到的URL,如下圖所示:
然后利用Python設(shè)置一個每周一到周日循環(huán)播放昨日成交額的markdown類型類型,最終效果截圖如下圖所示:
接下來附上實際代碼,所有代碼都有注釋:
import?datetimeimport?json
import?urllib.request
import?pymysql?as?pms
def?get_Copywriting():
????#?判斷當(dāng)天是周幾選擇出文案的函數(shù)
????#獲取當(dāng)天日期
????today?=?datetime.date.today()
????#獲取當(dāng)天是周幾
????todayweek?=?datetime.date.isoweekday(today)
????#利用IF語句判斷周幾選出當(dāng)天要發(fā)送的文案
????if?todayweek?==?1:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?所有的成績都始于默默搬磚!昨天的成交達到**%s**美金啦~感謝所有默默搬磚的你們,今天還是要以正能量的姿態(tài)迎接更大的挑戰(zhàn),加油,小伙伴們\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?2:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?如果有些事無法回避,那我們能做的,就是把自己變得更強大,強大到能夠應(yīng)對這一次挑戰(zhàn)。送走昨日**%s**美金成交的歷史,今日又是富有挑戰(zhàn)的一天~\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?3:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?努力是人生的一種精神狀態(tài),往往最美的不是成功的那一刻,而是那段努力奮斗的過程。伙伴們,昨日又是一個漂亮的翻身仗,成交**%s**美金啦,愿你努力后的今天更精彩。早安!\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?4:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?昨日的辛勤勞作又有了新突破,昨日成交已經(jīng)**%s**美金啦~不拋棄不放棄,沒有辦法的時候,死磕也是種辦法。\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?5:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?明天就是周末了,噓~~~不要笑出聲。昨天平臺成交**%s**美金恩,現(xiàn)在可以笑出來了。又是新的一天,加油。\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?6:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?辛勤的付出才能得到我們想要的回報,一味的幻想,只會讓你離夢想越來越遠。看,我們的夢想又近了一步,昨日已經(jīng)**%s**美金啦,成功已越來越近啦~\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????elif?todayweek?==?7:
????????Copywriting?=?"###?每日數(shù)據(jù)??\n?>?把彎路走直的人是聰明的,因為找到了捷徑;把直路走彎的人是豁達的,因為可以多看幾道風(fēng)景;路不在腳下,路在心里。告訴大家一個好消息,昨日成交**%s**美金啦,各位早安,愿好。\n\n?>?\n??>?#####?10點00分發(fā)布?[BI部門](http://data.kikuu.com:8007/dashboard/?project=default#dashid=28)?"
????return?Copywriting
def?send_request(url,?datas):
????#傳入url和內(nèi)容發(fā)送請求
????#?構(gòu)建一下請求頭部
????header?=?{
????????"Content-Type":?"application/json",
????????"Charset":?"UTF-8"
????}
????sendData?=?json.dumps(datas)??#?將字典類型數(shù)據(jù)轉(zhuǎn)化為json格式
????sendDatas?=?sendData.encode("utf-8")??#?python3的Request要求data為byte類型
????#?發(fā)送請求
????request?=?urllib.request.Request(url=url,?data=sendDatas,?headers=header)
????#?將請求發(fā)回的數(shù)據(jù)構(gòu)建成為文件格式
????opener?=?urllib.request.urlopen(request)
????#?7、打印返回的結(jié)果
????print(opener.read())
def?get_datas(sql):
????#?一個傳入sql導(dǎo)出數(shù)據(jù)的函數(shù)
????#?跟數(shù)據(jù)庫建立連接
????conn?=?pms.connect(host='實例地址',?user='用戶名',
???????????????????????passwd='密碼',?database='庫名',?port=3306,?charset="utf8")
????#?使用?cursor()?方法創(chuàng)建一個游標(biāo)對象?cursor
????cur?=?conn.cursor()
????#?使用?execute()?方法執(zhí)行?SQL
????cur.execute(sql)
????#?獲取所需要的數(shù)據(jù)
????datas?=?cur.fetchall()
????#?關(guān)閉連接
????cur.close()
????#?返回所需的數(shù)據(jù)
????return?datas
def?main():
????#按照釘釘給的數(shù)據(jù)格式設(shè)計請求內(nèi)容??鏈接https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.p7hJKp&treeId=257&articleId=105735&docType=1
????my_data?=?{
????????"msgtype":?"markdown",
????????"markdown":?{"title":?"每日早報",
?????????????????????"text":?"?"
?????????????????????},
????????"at":?{
????????????"isAtAll":?True
????????}
????}
????#獲取當(dāng)天文案
????my_Copywriting?=?get_Copywriting()
????#獲取昨日成交
????my_mydata?=?get_datas(
????????"SELECT?sum(usdAmount)?FROM?dplus_source_productorder_v2?WHERE?RealPaidTime?>=?'2018-08-20?00:00:00'?AND?RealPaidTime?<=?'2018-08-20?23:59:59'")
????#獲取昨日成交的數(shù)值my_mydata?=?my_mydata[0][0]
????#?保留2位小數(shù)my_mydata?=?"%.2f"?%?my_mydata
????#把文案中的金額替換為昨天成交金額my_Copywriting?=?my_Copywriting?%?my_mydata
????#把文案內(nèi)容寫入請求格式中my_data["markdown"]["text"]?=?my_Copywriting
????#你的釘釘機器人urlmy_url?=?"復(fù)制釘釘你的機器人url地址"send_request(my_url,?my_data)if?__name__?==?"__main__":main();
釘釘自定義機器人還可以發(fā)送文本和鏈接消息,也就是請求的內(nèi)容不一樣,原理都是一致的,具體數(shù)據(jù)格式釘釘開發(fā)平臺有解釋,代碼中也附有釘釘說明鏈接地址。
最后本人是win10系統(tǒng),利用系統(tǒng)自帶的任務(wù)計劃程序建立一個每日10點自動執(zhí)行Python腳本的任務(wù),就可以每日自動發(fā)送釘釘消息了,當(dāng)然大家有條件的放到服務(wù)器執(zhí)行更加好。畢竟電腦不開機就沒法自動執(zhí)行任務(wù)了。
熱 門 推 薦用Python創(chuàng)建微信機器人用Python機器人監(jiān)聽微信群聊用Python獲取攝像頭并實時控制人臉開源項目 | 用Python美化LeetCode倉庫推薦Python中文社區(qū)旗下的幾個服務(wù)類公眾號征稿啟事 | Python中文社區(qū)有獎?wù)魑?/strong>▼ 點擊成為社區(qū)注冊會員? ? ? ? ??「在看」一下,一起PY!
總結(jié)
以上是生活随笔為你收集整理的钉钉机器人自动回复消息_用Python自动发送钉钉数据消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux怎样安装(Linux入门)
- 下一篇: python sort 多级排序_为什么