微信号网页版api
Django Wechat Api
djangowechatapi是基于wxpy和django制作的web应用
安装
使用
pippip install djangowechatapi
源码安装
git clone https://github.com/Ivy-1996/wechatapi.git cd wechatapi python setup.py install
配置
该模块依赖
djangorestframework和django_filter,需要把他们一起注册到INSTALLED_APPS里INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'django_filters',
'wechat',
]
添加到urls
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('wechat.url'))
]
配置缓存
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": f'redis://127.0.0.1/8',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
如果使用
django默认的文件存储机制,需要在SETTINGS里面指定MEDIA_PATH = os.path.join(BASE_DIR, 'media')
如果使用的是
mysql数据库存储,则需要制定数据库和表的编码为utf8mb4执行迁移脚本
python manager.py migrate
应用接口详情
由于网页版微信的保密机制,无法捕捉到用户的唯一id,这里采用的是wxpy提供的puid作为用户的唯一身份标识。
创建微信应用:
- 命令行创建
python manager.py createwechatapp please enter the name of wechat app:<你的应用名>
please enter the token of <你的应用名> app:<应用的token>
create app successfuly!
your app_id: <app_id>
your app_secret: <app_secret>
- 或者通过网页使用django-admin创建
- 命令行创建
获取
access_token所有api的默认的认证方式都是通过
access_token来实现的,access_token的有效期为2个小时(可以在settings.py里面设置ACCESS_TOKEN_EXPIRE_IN来修改默认的2个小时)如果你觉得
access_token不够安全,你也可以使用模块提供的SignatureAuthentication来实现实时用户认证。具体使用请参考源码。获取
access_token(access_token依赖redis缓存,请确保上述配置均已配置完成)method:GET
url:/access_token?app_id=<app_id>&app_secret=<app_secret>正常情况下,会返回
{
"access_token": "ACCESS_TOKEN",
"expire_in": 7200
}
如果出错了
{
"errmsg": [
"无效的app"
]
}
网页登陆
method:GET
url:/login?access_token=<access_token>
return:
json { "uuid": "wbQeNse67Q==", "status": "0", "qrcode": "https://login.weixin.qq.com/qrcode/wbQeNse67Q==" }
参数说明
uuid: 登陆二维码的唯一标识
status: 登陆状态
qrcode: 获取登陆二维码的地址登陆验证
method:GET
url:/check-login?access_token=<access_token>&uuid=<uuid>
return:{
"status": "408",
"alive": null,
"avatar": null
}
status:
* 408:等待扫描登录
* 201:已扫描,但为点击确认登录(此时可以获取到用户的头像)
* 200:已扫描登录成功。
avatar: 扫描用户的头像
alive: 登录后为True,退出登录后为False,未登录为null如果是做成网页版登录,前端在拿到登录二维码之后可以轮询这个接口来判断用户的登录状况
获取好友列表
method:GET
url:/friends?access_token=<access_token>
return:{
"count": 140,
"next": "http://127.0.0.1:8000/friends?access_token=fc99fe6e-7771-4e22-b89d-e9827463bf65&page=4",
"previous": "http://127.0.0.1:8000/friends?access_token=fc99fe6e-7771-4e22-b89d-e9827463bf65&page=2",
"results": [
{
"puid": "3b1b58a2",
"name": "多吃点苹果微信号网页版api的更多相关文章
- 基于.Net平台C#的微信网页版API
git上有很多类似的项目,但大多都是python和js的,为了便于.Net windows平台的使用,我重构了一个.Net版本的,已整理开源 https://github.com/leestar54/ ...
- PHP 之CI框架+GatewayWorker+AmazeUI低仿微信聊天网页版
html5开发的仿微信网页版聊天,采用html5+css3+jquery+websocket+amazeui等技术混合架构开发,实现了微信网页版的主要功能. 一.效果图 二.前端参考代码 <!D ...
- 【Python之路】特别篇--微信Web网页版通信的全过程分析
文章所使用Python版本为py3.5 1.微信服务器返回一个会话ID 微信Web版本不使用用户名和密码直接登录,而是采用二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录. ...
- Your wechat account may be LIMITED to log in WEB wechat, error info: <error><ret>1203</ret><message>为了你的帐号安全,此微信号不能登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。Windows微信下载地址:WeChat for PC
转载:https://zhuanlan.zhihu.com/p/76180564 微信网页版限制登录或禁止登录将影响一大批使用itchat等Web Api方案的微信机器人 网页版微信 API 被封了, ...
- 玩玩微信公众号Java版之六:微信网页授权
我们经常会访问一些网站,用微信登录的时候需要用到授权,那么微信网页授权是怎么一回事呢,一起来看看吧! 参考官方文档:https://mp.weixin.qq.com/wiki?t=resource ...
- 图灵机器人api的使用方法含微信版本和网页版
访问图灵机器人官网http://www.tuling123.com/ 注册一个新的机器人账号 注册成功后转到主页 点击我的机器人>创建机器人>微信机器人 填写基本信息 点击微信介入> ...
- 16-网页,网站,微信公众号基础入门(网页版MQTT,页面控件位置调整入门)
https://www.cnblogs.com/yangfengwu/p/11200767.html 说一下,只要你java学的很好,那么几乎所有的语言都不在话下了 来看一下样式设置 运行 在左上角感 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简。
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
随机推荐
- 【分布式锁】01-使用Redisson实现可重入分布式锁原理
前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https:// ...
- BigDecimal介绍及BigDecimal实现四舍五入
BigDecimal介绍及BigDecimal实现四舍五入 BigDecimal是什么? 我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的 ...
- 一步一步学习S-MSCKF(一)连续时间IMU误差状态运动模型
1 IMU真实状态运动模型 状态向量: \(x_{I}=\left[{{_{G}^{I}{q(t)}}^{T},{b_{g}(t)}^{T},{^{G}v_{I}(t)}^{T},{b_{a}(t)} ...
- HTML每日学习笔记(1)
7.15.2019 1.HTML脚本——JavaScript的嵌入使用,使 HTML 页面具有更强的动态和交互性. <script> 标签用于定义客户端脚本,比如 JavaScript. ...
- Callable的Future模式
一.线程实现方式 1.继承Thread类 2.实现Runnable接口 3.线程池 4.Callable 二.无论使用继承Thread类还是实现Runnable接口,还是使用线程池都没有办法解决2个问 ...
- WEB应用之httpd基础入门(一)
前文我们聊了下http协议web服务的一些常识和httpd服务器软件三种响应模型的简单介绍,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12515075.ht ...
- Linux 部署Tomcat图文注解 一学就会
导读 安装tomcat前首先要安装对应的jdk并配置Java环境. 安装jdk,请参考:点我直达 安装Tomcat 下载Tomcat包 官网地址:点我直达 Tomcat与jdk兼容关系 注:Tomca ...
- 洛谷 P5596 【XR-4】题 题解
原题链接 本题只要 推式子 就可以了. \[y^2-x^2=ax + b \] \[a x + x^2 = y^2 - b \] \[4 x^2 + 4 ax = 4 y^2 - 4b \] \[(2 ...
- 【Unity游戏开发】跟着马三一起魔改LitJson
一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ...
- Unity 游戏框架搭建 2019 (十三~十五) 接下来要学什么?& 第九个示例
在之前的两篇中,我们使用 public 静态方法对之前的内容进行了一个抽取,有了 public 静态方法这个工具,我们的学习行为也发生了一点变化. 在没使用 public 关键字之前呢,每一个示例仅仅 ...
- 基于.Net平台C#的微信网页版API