釘釘開放平台傳送門:
我司使用釘釘作為內部通訊工具,基本上大家在電腦和手機上都開著,訊息可以第一時間檢視,報警訊息的即時性要求比較高,所以適合用釘釘通知。
下面介紹如何用python實現釘釘傳送報警訊息。
獲取access token
要使用釘釘傳送訊息,首先需要獲取access token,**如下:
def get_access_token():
url = '' % (corp_id, corp_secret)
request = urllib2.request(url)
response = urllib2.urlopen(request)
response_str = response.read()
response_dict = json.loads(response_str)
error_code_key = "errcode"
access_token_key = "access_token"
if response_dict.has_key(error_code_key) and response_dict[error_code_key] == 0 and response_dict.has_key(access_token_key):
return response_dict[access_token_key]
else:
return ''
access token在2小時內有效,有效期內重複獲取返回相同結果,有效期會自動延長。corp_id和corp_secret是企業的id和secret,在釘釘的管理後台可以找到。另外,上面用到了urllib2和json,需要import:
import urllib2
import json
訊息型別
釘釘的訊息型別分為:text,image,voice,file,link和oa,具體訊息格式參見: 。
下面以傳送文字,鏈結和檔案訊息為例進行說明。
給使用者傳送訊息
傳送文字
def send_text_to_users(access_token, users, text):
msg_type, msg = _gen_text_msg(text)
return _send_msg_to_users(access_token, users, msg_type, msg)
def _gen_text_msg(text):
msg_type = 'text'
msg =
return msg_type, msg
def _send_msg_to_users(access_token, users, msg_type, msg):
to_users = '|'.join(users)
body_dict =
body_dict[msg_type] = msg
body = json.dumps(body_dict)
return _send_msg("", access_token, body)
其中agent_id是乙個釘釘應用的id,以釘釘應用的名義給使用者傳送訊息。users是使用者id列表,每個使用者id是乙個字串。
傳送鏈結
def send_link_to_users(access_token, users, url, title, text):
msg_type, msg = _gen_link_msg(url, title, text)
return _send_msg_to_users(access_token, users, msg_type, msg)
def _gen_link_msg(url, title, text):
msg_type = 'link'
msg =
return msg_type, msg
其中_send_msg_to_users方法參見前面的**,picurl欄位設定的是釘釘官方的,這裡用於測試。
傳送檔案
def send_file_to_users(access_token, users, file_name):
media_id = upload_file(access_token, file_name)
if media_id == '':
return
msg_type, msg = _gen_file_msg(media_id)
return _send_msg_to_users(access_token, users, msg_type, msg)
def upload_file(access_tokwww.cppcns.comwww.cppcns.comen, file_name):
register_openers()
datagen, headers = multipart_encode()
requst_url = '' + access_token + '&type=file'
request = urllib2.request(requst_url, datagen, headers)
response = urllib2.urlopen(request)
response_str = response.read()
response_dict = json.load
media_id_key = 'media_id'
error_code_key = 'errcode'
if response_dict.has_key(error_code_key) and response_dict[error_code_key] == 0 and response_dict.has_key(media_id_key):
return response_dict[media_id_key]
else:
return ''
需要先上傳檔案獲得media_id,然後使用media_id將檔案傳送給使用者。另外,這裡用到了poster,可使用pip安裝:
pip install poster
之後引入multipart_encode和register_openers函式:
給群會話傳送訊息
與給使用者傳送資訊類似,區別是需要群會話id,而不是使用者列表,以傳送文字訊息為例,**如下:
def send_textwww.cppcns.com_to_chat(access_token, chat_id, text):
msg_type, msg = _gen_text_msg(text)
return _send_msg_to_chat(access_token, chat_id, msg_type, msg)
def _send_msg_to_chat(access_token, chat_id, msg_type, msg):
body_dict =
body_dict[msg_type] = msg
body = json.dumps(body_dict)
return _send_msg("", access_token, body)
其中_gen_text_msg方法參見前面的**。
群會話可以自行建立,參見 。
本文標題: python實現釘釘傳送報警訊息的方法
本文位址:
Python實現釘釘傳送報警訊息
給群會話傳送訊息 釘釘開放平台傳送門 我司使用釘釘作為內部通訊工具,基本上大家在電腦和手機上都開著,訊息可以第一時間檢視,報警訊息的即時性要求比較高,所以適合用釘釘通知。下面介紹如何用python實現釘釘傳送報警訊息。要使用釘釘傳送訊息,首先需要獲取access token,如下 def get a...
php釘釘機械人,php實現釘釘業務報警機械人
使用場景,伺服器報異常錯誤,想要及時收到報警資訊並處理 環境介紹,本博使用yaf框架 php,僅僅提供思路,參考,具體根據自己實際情況進行編寫 1,每十分鐘執行一次任務指令碼 每10分鐘執行一次的任務 if 0 eq minute 10 then php f public index.php req...
Python實現釘釘群訊息推送
對於某些自動化任務執行結果反饋,使用釘釘機械人訊息替換繁瑣的郵件傳送方式使用釘釘機械人api,可以將任何你需要的服務訊息推送到釘釘 參考文件 釘釘機械人api介面文件 python import requests import json defsend dingding access token,u...