Python實現釘釘傳送報警訊息

2021-08-01 01:59:49 字數 4020 閱讀 4254

給群會話傳送訊息

釘釘開放平台傳送門:

我司使用釘釘作為內部通訊工具,基本上大家在電腦和手機上都開著,訊息可以第一時間檢視,報警訊息的即時性要求比較高,所以適合用釘釘通知。

下面介紹如何用python實現釘釘傳送報警訊息。

要使用釘釘傳送訊息,首先需要獲取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_idcorp_secret是企業的id和secret,在釘釘的管理後台可以找到。另外,上面用到了urllib2json,需要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)

defupload_file

(access_token, 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.loads(response_str)

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_encoderegister_openers函式:

from poster.encode import multipart_encode

from poster.streaminghttp import register_openers

與給使用者傳送資訊類似,區別是需要群會話id,而不是使用者列表,以傳送文字訊息為例,**如下:

def

send_text_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實現釘釘傳送報警訊息。獲取access token 要使用釘釘傳送訊息,首先需要獲取access token,如下 def...

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...