用python给微信公众号发消息

来源:互联网 发布:淘宝网禁止出售黄赌毒 编辑:程序博客网 时间:2024/06/08 17:11

现在通过发微信公众号信息来做消息通知和告警已经很普遍了。最常见的就是运维通过zabbix调用shell脚本给微信发消息,起到告警的作用。当要发送的信息较多,而且希望按照指定格式显示的好看一点的时候,shell处理起来,个人感觉不太方便。于是我用python重写了发微信的功能。

#coding:utf-8import urllib2import jsonimport sysdef getMsg():    #为了避免发送中文消息报错,使用utf8方式编码    reload(sys)    sys.setdefaultencoding('utf8')    #这个方法生成想要发送的消息    msg = '''要发送的消息1要发送的消息2要发送的消息3...'''    return msgif __name__ == '__main__':    #微信公众号上应用的CropID和Secret    CropID='xxxxxxxxxxxxxxxxxx'    Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    #获取access_token    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s" % (CropID,Secret)    result=urllib2.urlopen(urllib2.Request(GURL)).read()    dict_result = json.loads(result)    Gtoken=dict_result['access_token']    #生成通过post请求发送消息的url    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Gtoken    #企业号中的应用id    AppID=1    #部门成员id,微信接收者    UserID=1    #部门id,定义可接收消息的成员范围    PartyID=1    #生成post请求信息    post_data = {}    msg_content = {}    msg_content['content'] = getMsg()    post_data['touser'] = UserID    post_data['toparty'] = PartyID    post_data['msgtype'] = 'text'    post_data['agentid'] = AppID    post_data['text'] = msg_content    post_data['safe'] = '0'    #由于字典格式不能被识别,需要转换成json然后在作post请求    #注:如果要发送的消息内容有中文的话,第三个参数一定要设为False    json_post_data = json.dumps(post_data,False,False)    #通过urllib2.urlopen()方法发送post请求    request_post = urllib2.urlopen(PURL, json_post_data)    #read()方法查看请求的返回结果    print request_post.read()
0 0
原创粉丝点击