欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實(shí)現(xiàn)開發(fā)釘釘通知機(jī)器人

 更新時(shí)間:2023年02月07日 08:45:42   作者:Ckend  
在項(xiàng)目協(xié)同工作或自動(dòng)化流程完成時(shí),我們需要用一定的手段通知自己或他人。Telegram 非常好用,幾個(gè)步驟就能創(chuàng)建一個(gè)機(jī)器人,可惜在國(guó)內(nèi)無法使用。所以本文就來開發(fā)一個(gè)釘釘通知機(jī)器人吧

在項(xiàng)目協(xié)同工作或自動(dòng)化流程完成時(shí),我們需要用一定的手段通知自己或他人。比如說,當(dāng)服務(wù)器CPU使用率達(dá)到90%,發(fā)送告警信息給多名項(xiàng)目成員、或是股票自動(dòng)化交易成交時(shí)發(fā)送通知給自己等應(yīng)用場(chǎng)景。通知的手段有很多,使用郵件、Telegram都可以實(shí)現(xiàn),但是它們都有各自的缺點(diǎn)。

郵件通知的方式存在滯后性,而且容易覆蓋掉一些重要的郵件,整理起來非常繁瑣。Telegram 非常好用,幾個(gè)步驟就能創(chuàng)建一個(gè)機(jī)器人,可惜在國(guó)內(nèi)無法使用,需要添加代理才能使用。

不過,前幾天發(fā)現(xiàn)釘釘?shù)臋C(jī)器人其實(shí)和Telegram的相差無幾,用起來也相當(dāng)舒服,因此今天給大家?guī)硪粋€(gè)開發(fā)釘釘通知機(jī)器人的教程,非常簡(jiǎn)單,門檻極低,任何人都能用,每個(gè)人都能學(xué)會(huì)。

1.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda,它內(nèi)置了Python和pip.

(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn)

Python 環(huán)境準(zhǔn)備完成后,我們就可以來創(chuàng)建一個(gè)釘釘機(jī)器人了。

1.1 打開釘釘軟件,選擇 "", 再點(diǎn)擊右上角+號(hào),選擇建場(chǎng)景群

1.2 這里可以選擇任意一種群,我選擇了培訓(xùn)群

1.3 群新建好后,點(diǎn)擊右上角的齒輪—群設(shè)置,點(diǎn)擊智能群助手。這里你也可以修改群的名字,點(diǎn)擊名字右邊的鉛筆就能修改群名。

1.4 點(diǎn)擊添加機(jī)器人

1.5 點(diǎn)擊右上角的+號(hào)

1.7 然后輸入機(jī)器人名字,安全設(shè)置選擇加簽,這一字符串你需要拷貝下來,發(fā)通知的時(shí)候就是我們的 SECRET KEY.

1.8 點(diǎn)擊完成后,會(huì)彈出創(chuàng)建成功的框框,請(qǐng)把這串webhook的鏈接拷貝下來,并將access_token參數(shù)復(fù)制下來,這一串 access_token 我們發(fā)送消息的時(shí)候也需要用到。

機(jī)器人創(chuàng)建完畢后,會(huì)在群聊中出現(xiàn),然后我們就可以開始編寫通知代碼了。

2.Python 釘釘機(jī)器人通知代碼

我們通過往 https://oapi.dingtalk.com/robot/send 地址發(fā)送 POST 請(qǐng)求的方式就能夠利用釘釘自定義機(jī)器人發(fā)送消息。釘釘機(jī)器人支持兩種消息內(nèi)容:

  • 1. 純文本信息
  • 2. Markdown信息

簡(jiǎn)單來講,如果你的消息只有文本內(nèi)容,就用第一種。如果你的消息內(nèi)含圖片和自定義格式,就用第二種。

純文本消息,你的內(nèi)容需要包含以下3種參數(shù),并帶2個(gè)內(nèi)容體:

參數(shù)列表:

  • 1. access_token: 創(chuàng)建成功后返回的webhook鏈接里就有這個(gè)參數(shù)。
  • 2. sign: 就是我們選擇加簽安全設(shè)置中返回的SECRET.
  • 3. timestamp: 當(dāng)前時(shí)間戳。

內(nèi)容體包含:

  • 1. msgtype: 消息內(nèi)容 text/markdown
  • 2. text: 文本內(nèi)容

代碼如下,非常簡(jiǎn)單:

# Python實(shí)用寶典
# 2021/11/13
import?json
import?hashlib
import?base64
import?hmac
import?os
import?time
import?requests
from?urllib.parse?import?quote_plus


class?Messenger:
????def?__init__(self, token=os.getenv("DD_ACCESS_TOKEN"), secret=os.getenv("DD_SECRET")):
????????self.timestamp = str(round(time.time() *?1000))
????????self.URL =?"https://oapi.dingtalk.com/robot/send"
????????self.headers = {'Content-Type':?'application/json'}
????????secret = secret
????????secret_enc = secret.encode('utf-8')
????????string_to_sign =?'{}\n{}'.format(self.timestamp, secret)
????????string_to_sign_enc = string_to_sign.encode('utf-8')
????????hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
????????self.sign = quote_plus(base64.b64encode(hmac_code))
????????self.params = {'access_token': token,?"sign": self.sign}

????def?send_text(self, content):
????????"""
????????發(fā)送文本
????????@param content: str, 文本內(nèi)容
????????"""
????????data = {"msgtype":?"text",?"text": {"content": content}}
????????self.params["timestamp"] = self.timestamp
????????return?requests.post(
????????????url=self.URL,
????????????data=json.dumps(data),
????????????params=self.params,
????????????headers=self.headers
????????)

使用的時(shí)候,請(qǐng)注意token和secret你既可以通過環(huán)境變量配置,也可以直接傳入給Messenger:

if?__name__ ==?"__main__":
????m = Messenger(
????????token="你的token",
????????secret="你的secret"
????)
????m.send_text("測(cè)試一下,今天天氣不錯(cuò)")

然后運(yùn)行這個(gè)腳本,就能獲取消息通知:

如果你只需要文本通知,那么到這里就已經(jīng)實(shí)現(xiàn)了,如果你還需要發(fā)送圖文消息或更多自定義內(nèi)容體,請(qǐng)看下面的內(nèi)容。

3.釘釘機(jī)器人支持Markdown

為了支持發(fā)送圖片消息和自定義的文字格式,我們需要配置更多的參數(shù):

def?send_md(self, title, content):
????"""
????發(fā)送Markdown文本
????@param title: str, 標(biāo)題
????@param content: str, 文本內(nèi)容
????"""
????data = {"msgtype":?"markdown",?"markdown": {"title": title,?"text": content}}
????self.params["timestamp"] = self.timestamp
????return?requests.post(
????????url=self.URL,
????????data=json.dumps(data),
????????params=self.params,
????????headers=self.headers
????)

msgtype參數(shù)改為markdown,并配置markdown的參數(shù),包括:

  • 1. title: 標(biāo)題
  • 2. content: markdown內(nèi)容

這樣,就能支持發(fā)送markdown消息了,我們?cè)囈幌拢?/p>

# Python實(shí)用寶典
# 2021/11/13
import?json
import?hashlib
import?base64
import?hmac
import?os
import?time
import?requests
from?urllib.parse?import?quote_plus


class?Messenger:
????def?__init__(self, token=os.getenv("DD_ACCESS_TOKEN"), secret=os.getenv("DD_SECRET")):
????????self.timestamp = str(round(time.time() *?1000))
????????self.URL =?"https://oapi.dingtalk.com/robot/send"
????????self.headers = {'Content-Type':?'application/json'}
????????secret = secret
????????secret_enc = secret.encode('utf-8')
????????string_to_sign =?'{}\n{}'.format(self.timestamp, secret)
????????string_to_sign_enc = string_to_sign.encode('utf-8')
????????hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
????????self.sign = quote_plus(base64.b64encode(hmac_code))
????????self.params = {'access_token': token,?"sign": self.sign}

????def?send_text(self, content):
????????"""
????????發(fā)送文本
????????@param content: str, 文本內(nèi)容
????????"""
????????data = {"msgtype":?"text",?"text": {"content": content}}
????????self.params["timestamp"] = self.timestamp
????????return?requests.post(
????????????url=self.URL,
????????????data=json.dumps(data),
????????????params=self.params,
????????????headers=self.headers
????????)

def?send_md(self, title, content):
????"""
????發(fā)送Markdown文本
????@param title: str, 標(biāo)題
????@param content: str, 文本內(nèi)容
????"""
????data = {"msgtype":?"markdown",?"markdown": {"title": title,?"text": content}}
????self.params["timestamp"] = self.timestamp
????return?requests.post(
????????url=self.URL,
????????data=json.dumps(data),
????????params=self.params,
????????headers=self.headers
????)


if?__name__ ==?"__main__":
????markdown_text =?"\n".join(open("md_test.md", encoding="utf-8").readlines())
????m = Messenger(
????????token="你的token",
????????secret="你的secret"
????)
????m.send_text("測(cè)試一下,今天天氣不錯(cuò)")
????m.send_md("測(cè)試Markdown", markdown_text)

效果如下:

效果還是不錯(cuò)的,速度也非???,一運(yùn)行腳本,馬上就能收到通知消息。大家可以在Python實(shí)用寶典公眾號(hào)后臺(tái)回復(fù) 釘釘 下載本文源代碼,也可以在下面的github鏈接中找到源代碼:https://github.com/Ckend/dd_notice

到此這篇關(guān)于基于Python實(shí)現(xiàn)開發(fā)釘釘通知機(jī)器人的文章就介紹到這了,更多相關(guān)Python釘釘通知機(jī)器人內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows下Python的Django框架環(huán)境部署及應(yīng)用編寫入門

    Windows下Python的Django框架環(huán)境部署及應(yīng)用編寫入門

    這篇文章主要介紹了Windows下Python的Django框架環(huán)境部署及程序編寫入門,Django在Python的框架中算是一個(gè)重量級(jí)的MVC框架,本文將從程序部署開始講到hellow world web應(yīng)用的編寫,需要的朋友可以參考下
    2016-03-03
  • keras用auc做metrics以及早停實(shí)例

    keras用auc做metrics以及早停實(shí)例

    這篇文章主要介紹了keras用auc做metrics以及早停實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格

    Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格效果,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以一起學(xué)習(xí)一下
    2023-05-05
  • Python中np.where()的使用方式

    Python中np.where()的使用方式

    這篇文章主要介紹了Python中np.where()的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中的tuple元組詳細(xì)介紹

    Python中的tuple元組詳細(xì)介紹

    這篇文章主要介紹了Python中的tuple元組詳細(xì)介紹,本文講解了Tuple 與 list 的相同之處、Tuple 不存在的方法、用 Tuple 的好處、Tuple 與 list 的轉(zhuǎn)換等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • 如何一分鐘內(nèi)找出pandas DataFrame某列中的nan值

    如何一分鐘內(nèi)找出pandas DataFrame某列中的nan值

    這篇文章主要介紹了如何一分鐘內(nèi)找出pandas DataFrame某列中的nan值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python 實(shí)現(xiàn)

    python 實(shí)現(xiàn)"神經(jīng)衰弱"翻牌游戲

    這篇文章主要介紹了python 實(shí)現(xiàn)"神經(jīng)衰弱"游戲,幫助大家更好的理解和使用python的pygame庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • 如何用C代碼給Python寫擴(kuò)展庫(kù)(Cython)

    如何用C代碼給Python寫擴(kuò)展庫(kù)(Cython)

    這篇文章主要介紹了如何用C代碼給Python寫擴(kuò)展庫(kù)(Cython),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • python多重繼承實(shí)例

    python多重繼承實(shí)例

    這篇文章主要介紹了python多重繼承實(shí)例,簡(jiǎn)單實(shí)用易于理解,需要的朋友可以參考下
    2014-10-10
  • 利用Python自帶PIL庫(kù)擴(kuò)展圖片大小給圖片加文字描述的方法示例

    利用Python自帶PIL庫(kù)擴(kuò)展圖片大小給圖片加文字描述的方法示例

    最近的一個(gè)工程項(xiàng)目是講文字添加到圖像上,所以下面這篇文章主要給大家介紹了關(guān)于利用Python自帶PIL庫(kù)擴(kuò)展圖片大小給圖片加文字描述的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評(píng)論