我是靠谱客的博主 诚心小兔子,最近开发中收集的这篇文章主要介绍企业微信消息推送脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1.nginx代理设置

2.脚本

2.1python2

2.2python3

3.企业微信接口地址


在推送消息之前需要注册企业,以及在企业微信中创建应用。这里不做详细介绍想了解或者创建的可以参考以下链接:

注册企业微信-帮助中心-企业微信

如何创建/设置自建应用权限-帮助中心-企业微信

1.nginx代理设置

设置代理主要有两个优势:

1.内网服务器基本不能联网,因此可以通过一台nginx代理转发微信接口请求。避免内网服务器暴露

2.将关键的key信息放到代理服务器上面,脚本里不存放key信息 避免信息泄露。

代理可以解决网络和安全问题,另外nginx access log也能记录所有请求方便追根溯源。

location /WxMsg {
	proxy_pass https://qyapi.weixin.qq.com/cgi-bin/message;
}

location /WxToken {
	set $corpid 'xxxxxxxx';
	set $corpsecret 'xxxxxxxxxx';
	proxy_pass https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret;
}

2.脚本

我推送消息使用了nginx代理,因此请求url地址是nginx的地址。如不需要使用代理可把url地址换成注释掉的微信接口url。另外应用id,部门id,标签id,接收人这些参数均需要根据自己企业微信的实际情况进行修改。

2.1python2

#!/usr/bin/python

import requests
import json
import sys

def send_message(user, subject, content):
    data = {"touser": user,
            "toparty": "",
            "totag": "90",
            "msgtype": "text",
            "agentid": '1000088',
            "text": {
                "content": "{0}n{1}".format(subject,content).strip()
            },
            "safe": 0
            }

    value = json.dumps(data, ensure_ascii=False)
    r = requests.get('http://192.168.110.164/WxToken')
    token = json.loads(r.text)['access_token']
    url = 'http://192.168.110.164/WxMsg/send?access_token=%s' % (token)
    r = requests.post(url, data=value)
    return r.text


if __name__ == '__main__':
    user = str(sys.argv[1])
    subject = str(sys.argv[2])
    content = str(sys.argv[3])
    send_message(user, subject, content)

2.2python3

#!/usr/bin/python3
#_*_coding:utf-8 _*_
import urllib.request
import json
import sys

#reload(sys)
#sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
    #gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    gettoken_url = 'http://192.168.110.164/WxToken'
    print  (gettoken_url)
    try:
        token_file = urllib.request.urlopen(gettoken_url)
    except urllib.error.HTTPError as e:
        print (e.code)
        print (e.read().decode("utf8"))
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token

def senddata(access_token,user,subject,content):
    #send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_url = 'http://192.168.110.164/WxMsg/send?access_token=' + access_token
    send_values = {
        "touser":user,
        "totag":"",
        "toparty":"1",
        "msgtype":"text",
        "agentid":"1000002",
        "text":{
            "content":"{0}n{1}".format(subject,content).strip()
           },
        "safe":"0"
        }
#    send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = json.dumps(send_values, ensure_ascii=False).encode('utf-8')
    send_request = urllib.request.Request(send_url, send_data)
    response = urllib.request.urlopen(send_request)
    msg = response.read()
    print ("returned value : " + str(msg))


if __name__ == '__main__':
    user = str(sys.argv[1])
    subject = str(sys.argv[2])
    content = str(sys.argv[3])

    corpid =  'xxxx'
    corpsecret = 'xxxx'
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

3.企业微信接口地址

接口的使用及具体参数说明请参考以下微信官方接口说明

https://work.weixin.qq.com/api/doc/90000/90135/90236#%E6%96%87%E6%9C%AC%E6%B6%88%E6%81%AF

最后

以上就是诚心小兔子为你收集整理的企业微信消息推送脚本的全部内容,希望文章能够帮你解决企业微信消息推送脚本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部