python調用微信api發告警message


# -*- coding:utf-8 -*-
import requests
import json
import sys



# 企業號及應用相關信息
corp_id = 'xxxx'
corp_secret = 'xxxx'
grant_type = 'client_credential'
# 存放access_token文件路徑
file_path = 'access_token.log'

def get_access_token_from_file():
    try:
        f = open(file_path,'r+')
        this_access_token = f.read()
        print('get success %s' % this_access_token)
        f.close()
        return this_access_token
    except Exception as e:
        print(e)

# 獲取token函數,文本里記錄的token失效時調用
def get_access_token():
    # get_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (corp_id, corp_secret)
    get_token_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=%s&appid=%s&secret=%s' % (grant_type,corp_id,corp_secret)
    print(get_token_url)
    r = requests.get(get_token_url)
    request_json = r.json()
    this_access_token = request_json['access_token']
    print(this_access_token)
    r.close()
    # 把獲取到的access_token寫入文本
    try:
        f = open(file_path,'w+')
        f.write(this_access_token)
        f.close()
    except Exception as e:
        print(e)

    # 返回獲取到的access_token值
    return this_access_token
#測試獲取token和發送message
'''
if __name__ == '__main__':

    access_token = get_access_token_from_file()
    try:
        send_message_url = 'https://api.weixin.qq.com/cgi-bin/message/send?access_token=%s' % access_token
        print(send_message_url)
        message_params = {'user':'Hello QingHe '}
        r = requests.post(send_message_url,data=json.dumps(message_params))
        print('post success %s' % r.text)
    except Exception as e:
        print(e)
        access_token = get_access_token()
'''

# snedMessage
# 死循環,直到消息成功發送
flag = True
while(flag):
    # 從文本獲取access_token
    access_token = get_access_token_from_file()
    try:
        to_user = '@all'
        message = sys.argv[3]
        send_message_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % access_token
        print(send_message_url)
        message_params = {
                            "touser":to_user,
                            "msgtype":"text",
                            "agentid":agent_id,
                            "text":{
                                "content" : message
                            },
                            "safe":0
                        }
        r = requests.post(send_message_url, data=json.dumps(message_params))
        print('post success %s ' % r.text)
        # 判斷是否發送成功,如不成功則跑出異常,讓其執行異常處理里的函數
        request_json = r.json()
        errmsg = request_json['errmsg']
        if errmsg != 'ok': raise
        # 消息成功發送,停止死循環
        flag = False
    except Exception as e:
        print(e)
        access_token = get_access_token()

 


免責聲明!

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



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