admin管理员组文章数量:1567292
前言
研究微信的一系列开发已经一段时间了,将自己的开发过程记录了下来,这次先介绍的是如何在微信的内置浏览器上通过授权获取用户信息。具体实现的是,用户关注了公众号,点击公众号下方的菜单在微信中进入公众号的网站(比如你公司的网站首页),在进入的时候通过授权获取用户信息。
要实现上述功能必须得有一个具有网页授权功能的微信公众号或者服务号,进入 微信公众平台,在开发–>接口权限看到如下就说明有授权功能,没有的话得去申请:
其次还得在设置–>公众号设置–>功能设置–>网页授权域名里填写你的授权域名,其中还要下载一个 txt文件并放在服务器上,注意一点的是必须放在项目的根目录并且要能访问到,比如你用nginx的话必须配置它的路径。
实现过程
- 服务器
先购买服务器,然后设置服务器的域名,比如设置域名为:www.showcome
。 - 配置公众号收集信息
首先得有一个有网页授权功能的公众号,然后在开发–>基本配置–>公众号开发信息里找到公众号的开发者ID(AppID)和开发者密码(AppSecret)
并记录下来,其次在设置–>公众号设置–>功能设置–>网页授权域名下填写上面的域名(注意不要加http://等协议头,下面写得很清楚)并将下图中蓝色的txt文件下载下来,后面需要用到:
- 接口流程
要想获取用户信息就得要用户同意,这个过程分为主要的三步,第一先请求 code:code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。第二步通过刚请求来的 code去请求access_token和openid,第三部就是通过刚获取的access_token和openid来请求用户信息。 - python代码如下(如果你想知道细节,可以去查看官方文档):
# -*- coding: utf-8 -*-
# ----------------------------------------------
# @Time : 18-3-21 下午1:36
# @Author : YYJ
# @File : WechatAPI.py
# @CopyRight: ZDWL
# ----------------------------------------------
import hashlib
import random
import time
from urllib import parse
from xml.etree.ElementTree import fromstring
import requests
from src.beauty.main.wechat.config import wechatConfig
class WechatAPI(object):
def __init__(self):
self.config = wechatConfig
self._access_token = None
self._openid = None
@staticmethod
def process_response_login(rsp):
"""解析微信登录返回的json数据,返回相对应的dict, 错误信息"""
if 200 != rsp.status_code:
return None, {
'code': rsp.status_code, 'msg': 'http error'}
try:
content = rsp.json()
except Exception as e:
return None, {
'code': 9999, 'msg': e}
版权声明:本文标题:Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726184991a1059421.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论