代码语言:javascript复制
本例 只适用于企业号,公众号没试,可自行测试,方法差不多。有事找官网开发文档。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import urllib.request
ID="xxxxxxxxxxxx"
Secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
UserID = "hequan2011"##成员ID列表(消息接收者,多个接收者用'|'分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
PartyID=17 ##部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
AppID = 0 ##应用ID,默认是 企业小助手 企业应用的id,整型。可在应用的设置页面查看
def get_token(): ##获取TOKEN
gurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={}&corpsecret={}".format(ID, Secret)
r=requests.get(gurl)
dict_result= (r.json())
return dict_result['access_token']
def get_media_ID(path): ##上传到临时素材 图片ID
Gtoken = get_token()
img_url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={}&type=p_w_picpath".format(Gtoken)
files = {'p_w_picpath': open(path, 'rb')}
r = requests.post(img_url, files=files)
re = json.loads(r.text)
return re['media_id']
##
def send_text(text): ##发送文字
post_data = {}
msg_content = {}
msg_content['content'] = text ## 消息内容,最长不超过2048个字节
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' #表示是否是保密消息,0表示否,1表示是,默认0
Gtoken = get_token()
purl1="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(Gtoken)
json_post_data = json.dumps(post_data,False,False)
request_post = urllib.request.urlopen(purl,json_post_data.encode(encoding='UTF8'))
return request_post
def send_tu(path): ##发送图片
img_id = get_media_ID(path)
post_data1 = {}
msg_content1 = {}
msg_content1['media_id'] = img_id
post_data1['touser'] = UserID
post_data1['toparty'] = PartyID
post_data1['msgtype'] = 'p_w_picpath'
post_data1['agentid'] = AppID
post_data1['p_w_picpath'] = msg_content1
post_data1['safe'] = '0'
Gtoken = get_token()
purl2="https://img.yuanmabao.com/zijie/pic/2020/01/03/043idgc5tfz") ##图片目录
send_text("123-何全") ##文字内容