Python3調用企業微信用於告警


代碼實現請見文末

前段時間利用py爬蟲抓取一些網頁信息,然后通過wxpy發送到微信群,以用作日常告警,感覺還是很方便。

但好景不長,我的小號微信被騰訊封了(很常見咯), 顯示無法登錄網頁版微信,至今已經有半個多月了。

image

怎么辦,已經體驗過微信告警的方便后,無法回歸原始人工查看了。思來想去,決定探(bai)索(du)Python調用微信企業號試試看;

一、申請企業微信

具體見企業微信官網:https://work.weixin.qq.com/wework_admin/register_wx?from=myhome_mp_home

反正比較麻煩,我是怎么申請的?我當了一次伸手黨,前期有同事申請過微信公眾號,后來直接升級為企業微信。經過深層次的溝通,同事給我加了個管理員權限,哈哈!

開發之前還是要認真研究一下企業微信的API文檔

 

二、創建應用

1、管理員進入企業微信“管理后台” — “企業應用”創建應用

 


2、設置應用logo、名稱、描述、可見范圍等。

開發階段“應用可見范圍”可先選擇小范圍可見,待開發完成后再開放給企業員工。

 

三、獲取access_token

開發者可以使用access_token來訪問企業微信的接口。需要注意的是,所有的接口需使用Https協議、Json數據格式、UTF8編碼。

請求方式:GET(HTTPS
請求URL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect

image

權限說明:

每個應用有獨立的secret,所以每個應用的access_token應該分開來獲取

術語介紹

  • corpid:每個企業都擁有唯一的corpid,獲取此信息可在管理后台“我的企業”-“企業信息”下查看(需要有管理員權限)
  • secret:secret是企業應用里面用於保障數據安全的“鑰匙”,每一個應用都有一個獨立的訪問密鑰,為了保證數據的安全,secret務必不能泄漏。通訊錄接口的密鑰在“管理工具”-“通訊錄同步”里面查看,企業自定義的應用的密鑰可以在企業應用的詳情里面手動生成
  • access_token:access_token是企業后台去企業微信的后台獲取信息時的重要票據,由corpid和secret產生。所有接口在通信時都需要攜帶此信息用於驗證接口的訪問權限

corpid:

2017-09-04_171908

secret:

image

 

四、發送消息

應用支持推送文本、圖片、視頻、文件、圖文等類型。

請求方式:POST(HTTPS
請求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

 

 

五、代碼實現

import urllib.request
import json

#--------------------------------
# 獲取企業微信token
#--------------------------------

def get_token(url, corpid, corpsecret):
    token_url = '%s/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (url, corpid, corpsecret)
    token = json.loads(urllib.request.urlopen(token_url).read().decode())['access_token']
    return token

#--------------------------------
# 構建告警信息json
#--------------------------------
def messages(msg):
    values = {
        "touser": '@all',
        "msgtype": 'text',
        "agentid": 1000002, #偷懶沒有使用變量了,注意修改為對應應用的agentid
        "text": {'content': msg},
        "safe": 0
        }
    msges=(bytes(json.dumps(values), 'utf-8'))
    return msges

#--------------------------------
# 發送告警信息
#--------------------------------
def send_message(url,token, data):
        send_url = '%s/cgi-bin/message/send?access_token=%s' % (url,token)
        respone=urllib.request.urlopen(urllib.request.Request(url=send_url, data=data)).read()
        x = json.loads(respone.decode())['errcode']
        # print(x)
        if x == 0:
            print ('Succesfully')
        else:
            print ('Failed')

##############函數結束########################

corpid = 'wx***********************'
corpsecret = 'Iwy******************************'
url = 'https://qyapi.weixin.qq.com'
msg='test,Python調用企業微信測試'

#函數調用
test_token=get_token(url, corpid, corpsecret)
msg_data= messages(msg)
send_message(url,test_token, msg_data)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM