python如何实现通知_ExASIC: 用python实现一个通知机器人
用python實現一個通知機器人
很多企業內部的交流工具都支持自定義機器人(或者叫做webhook),簡單來講就是可以按照企業交流工具提供的API來自動化的通知、提醒,甚至反饋、執行任務等操作。下面以倍洽(https://bearychat.com)為例,介紹實現通知機器人的方法。
Incoming機器人的API介紹
Incoming
按照 BearyChat API 靈活實現自己的服務,并向指定討論組推送內容
使用說明:
發送一個 JSON 字符串做為 POST 請求的 body, Content-Type 為 application/json
JSON 格式要求
必須有 text 字段: {"text": "Hello world"}
markdown 為可選字段,用于控制text字段是否進行 markdown 解析,默認為 true
channel用來指定群組
示例:
{
"text": "text, this field may accept markdown",
"markdown": true,
"channel": "bearychat-dev",
"attachments": [
{
"title": "title_1",
"url": "https://bearychat.com",
"text": "attachment_text",
"color": "#ffa500",
"images": [
{"url": "http://img3.douban.com/icon/ul15067564-30.jpg"}
]
}
]
}
測試API
簡單的描述下這個通知機器人:就是往API提供的接口,按照指定的格式,發送一些字符串。
我們用curl來測試一下:
curl 'https://hook.bearychat.com/=bwIfL/incoming/50bf88375cb3eeba5c6e56ac6e38exxx' \
-H 'Content-Type: application/json' \
-d '{"text":"incoming機器人測試消息"}'
用python來實現
為了便于與具體應用集成,我們把這個功能包裝成函數。
import urllib.request
import urllib.parse
import json
import logging as log
#
# txt: contents to be sent
# ch: send to group '所有人' default
#
def send_notice(txt, ch='所有人'):
try:
# txt -> json
params = json.dumps({"text": txt}).encode()
# set headers
headers = {"Content-type": "application/json", "Accept": "text/plain"}
# prepare req data
req = urllib.request.Request('https://hook.bearychat.com/=bwIfL/incoming/50bf88375cb3eeba5c6e56ac6e38exxx',params,headers)
# post data to api url
res = urllib.request.urlopen(req)
# receive feedback data
data = res.read().decode()
print(data)
except Exception as e:
# emit any error
log.error(e)
測試python代碼
if __name__ == '__main__':
send_notice("""icknow知識庫文章更新:
增加了:
克隆并切換分支的使用方法。
詳見下面的鏈接:
[Mercurial HG Practical Commands](http://192.168.0.116:3000/tutorial/hg)
""")
效果如下:
總結
以上是生活随笔為你收集整理的python如何实现通知_ExASIC: 用python实现一个通知机器人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 压缩文件 调用7z_Pyt
- 下一篇: python读取路径太长_路径名太长,无