python之-微信开发学习
微信公众平台技术文档
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)
python之-微信开发学习的更多相关文章
- python全栈开发学习_内容目录及链接
python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...
- python全栈开发学习_day2_语言种类及变量
一.编程语言的分类及python相对其他语言的优势 1)三大语言种类及细分 1.机器语言(低级语言):直接用计算能够理解的二进制进行编写,直接控制计算机硬件. 优点:执行效率高. 缺点:开发效率低,跨 ...
- 微信开发学习日记(七):开源微商城wemall
最近嘛,不是在调研PHP和微信的行情么. 发现,微商城是非常火爆的一个领域,既然业务有搞头,那么技术这一块也有很多选择. 网上发现了wemall这个开源的PHP实现的微商城. 下载了开源版本,PHP后 ...
- 微信开发学习日记(六):weiphp框架
最近重点在看weiphp这个开源的第三方微信公众平台框架. 在网上找微信资料,找到了这个.很早之前,就初步学习了Thinkphp和Onethink2个开源框架,当看到weiphp是用这2个框架开发的时 ...
- python全栈开发学习_day1_计算机五大组成部分及操作系统
一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...
- html5+css3 微信开发-学习实例
例子1.控制数据只显示两行并且最后使用省略号 样式如下: .ControlDataRows{ overflow : hidden; text-overflow: ellipsis; display: ...
- 微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求
又经过了几个小时的梳理.回顾,截至目前,终于对weiphp这个框架的机制搞明白了些.想要完全明白,自然还需要大把的时间.第1步: 配置微信公众号,http://weiphp.jiutianniao ...
- python itchat 微信开发
使用itchat可以简单操作微信,进行好友和群消息的发送 安装: pip install itchat 使用: import itchat, time # 登录 itchat.auto_login(h ...
- 微信开发学习日记(五):weiphp开源框架的bug,公众号权限编辑问题
最近在研究weiphp,总体感觉还行,bug据说还挺多. 这不,我就遇到一个比较严重影响使用的.感觉不太应该出现这么严重的bug啊. weiphp的微信公众号等级,权限增加和编辑bug,看不到权限列表 ...
随机推荐
- python中的seteuid
seteuid(...) seteuid(uid) Set the current process's effective user id.
- 求N个数的最大公约数
使用 “辗转相除法” 计算2个数的最大公因数: int GCD_2(int nNum1, int nNum2) { if (nNum1 > nNum2) { nNum1 = nNum1 ^ nN ...
- HDU 5414 CRB and String (字符串,模拟)
题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no.插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可. 思路:特殊的情况就是s和t的最长相同 ...
- (转)编码剖析@Resource注解的实现原理
http://blog.csdn.net/yerenyuan_pku/article/details/52860046 上文我们已经学会使用@Resource注解注入属性.学是学会了,但也仅限于会使用 ...
- uva1609 Foul Play
思维 创造条件使一轮比赛之后仍满足1号打败至少一半,并剩下至少一个t' 紫书上的思路很清晰阶段1,3保证黑色至少消灭1半 #include<cstdio> #include<vect ...
- #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据
上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...
- 通过java反射机制,获取对象的属性和值(包括所有继承的父类)
java的反射机制提供了两种方法: getDeclaredFields() :该方法能获取到本类的所有属性,包括private,protected和public,但不能获取到继承的父类的属性. get ...
- git 添加外部项目地址
github 提交第三方模块流程 // git config --global user.name 'your name' 可以设置全局用户名,在commit记录里显示的是这个配置设置的名称. / ...
- eclipse修改SVN账号密码
首先,eclipse中打开window------>preferences------->SVN页面,如下所示: 注意我圈起来的地方,JavaHL是不可用的,因此SVN接口应该是SVNKi ...
- List<T>排序
List<Student> studentList = new List<Student>(); Student s = new Student(); s.Name = &qu ...