微信公眾平台技術文檔
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)