企业微信消息推送脚本

目录

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷柏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值