微信公众平台技术文档
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
# 注意,最好以python3 运行,中文字符集就不用转码了。
使用的模块
import requests
import json
#Appid = 'wxa8XXXXXXXXX'
#Secret = 'fba077XXXXXXXXX'
以上:Appid,Secret是你开通微信公众号内部开发-基本配置里提取的值。
# 获取access_token,这个是登录微信的先期条件
url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' % (Appid,Secret) # get请求访问 r = requests.get(url) # 由于返回的是json格式,使用.text打印内容后loads为字典格式 d = json.loads(r.text) # 这样就可以打印出access_token串 print(d['access_token'])
打印所有关注者的openID以及详细信息
#公众号内每个关注人都会有一个唯一的身份标识:openID,以下URL可以获取当前公众号的所有关注者的openID #user_url = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token=%s' % (d['access_token']) s = requests.post(user_url) s1 = json.loads(s.text) 这里就会以字典嵌套字典的形式打印此公众号内所有人的openID, 通过以下方法来获取每个关注者的详细信息 #for line in s1['data']['openid']: # 以下是获取方法 # mess = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN' % (d['access_token'],line) # m = requests.get(mess) # m1 = json.loads(m.text) # print(m1)
消息群发和单独发送代码:
#群发消息的url #user_url = 'https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=%s' % (d['access_token']) #单独发消息url user_url = 'https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=%s' % (d['access_token']) # 群发消息的值如下: #value = { # "filter":{ # "is_to_all":False, # True表示群发,False不群发 # "tag_id":0 # 如群发,这里可以不写,否则,这个标识群发的组ID # }, # "text":{ # "content":"TEST" # 群发内容 # }, # "msgtype":"text" # 群发文本 #} # 单独发消息的值如下: value = { "touser":[ "oYnK8vnSHJoKIzjO3ChsCqqO9ym8", # 关注者的openID,至少2个 "oYnK8vgpMLt3VxKFlfcJxsNcWL0A" ], "msgtype": "text", "text": { "content": "WX mess api dev."} } #以下是统一写法 # URL只能以字符串形式提交,所以这里要转换为字符串 v = json.dumps(value) # 发起post请求,提交值 s = requests.post(user_url,v) # 获取发送后的结果返回,如果为0表示成功 s1 = json.loads(s.text) print(s1)