微信公众平台(3)-网页授权获取用户基本信息

关于微信公众平台网页授权获取用户基本信息的博文,网上已经有不少了,但是用nodejs开发的和nodejs开发公众平台的文章还是寥寥无几,今天就给大家介绍下nodejs获取用户基本信息的接口。

具体而言,网页授权流程分为四步:

1. 引导用户进入授权页面同意授权,获取code

2. 通过code换取网页授权access_token(与基础支持中的access_token不同)

3. 如果需要,开发者可以刷新网页授权access_token,避免过期

4. 通过网页授权access_token和openid获取用户基本信息

其实这四步之前还有一步就是在微信公众平台的后台设置域名,域名不用带http://,此域名下的子域名同样获得鉴权。如:www.baidu.com,或者像IP:Port。

然后我们来讲第一步,进入授权页面,我在这一步上就费解了好久,这个借口不同于自定义菜单,直接一个post借口就能解决。这个授权页面是个什么url呢,这个url又该放在哪呢?

首先这个授权页面是在菜单点击链接中或者图文信息的链接中,然后这个url格式如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxb857569c7c85fe56&redirect_uri=http://121.40.*.*/getUserInfo?action=viewtest&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect

https://open.weixin.qq.com/connect/oauth2/authorize是微信官方的接口,根据我们的参数,它给我们重定向到我们传递的地址参数redirect_uri,并带回code。

然后,我们来看第二步根据code换取网页授权access_token,和第四步根据access_token和openid获取用户基本信息。其实我们code是在http://121.40.*.*/getUserInfo中作为参数获取的,那么我们可以直接在getUserInfo的action中获取code参数,继而继续调用接口获取access_token和openid,最后获取用户基本信息。

想清此中关节,我们来看一下代码:

router.get(‘/getUserInfo‘, function(req, res) {
    var code = req.param("code");
    console.log(code);

    var AppId = config.huaheng.AppId;
    var AppSecret = config.huaheng.AppSecret;
    var openidUrl = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=‘ + AppId
        + ‘&secret=‘ + AppSecret
        + ‘&code=‘+code
        + ‘&grant_type=authorization_code‘;

    nodegrass.get(openidUrl,function(data,status,headers){

        var access_token_info = JSON.parse(data);
        var access_token = access_token_info.access_token;
        var openid = access_token_info.openid;
        var getUserInfo = ‘https://api.weixin.qq.com/sns/userinfo?access_token=‘
            + access_token + ‘&openid=‘ + openid + ‘&lang=zh_CN‘;
        nodegrass.get(getUserInfo,function(data,status,headers){
            console.log(data);
            res.render(‘userinfo‘, JSON.parse(data));
        },‘utf8‘).on(‘error‘, function(e) {
            console.log("Got error: " + e.message);
        });

    },‘utf8‘).on(‘error‘, function(e) {
        console.log("Got error: " + e.message);
    });
});

这里我访问http请求用的是nodegrass模块,之前我尝试了https和needle,但是由于中文乱码都有问题,最后找到了nodegrass。获取到userinfo后将用户基本信息返回到userinfo的jade模板页面中。

下面看一下jade模板:

block content
  div.am-g.am-g-fixed.blog-g-fixed
    div.col-md-8.blog-main
      form.am-form
          h3.am-article-title
            a #{nickname}
          p.about-color #{nickname}
          if sex==1
            p.about-color 男
          else if sex==0
            p.about-color 女
          p.about-color #{country}-#{province}-#{city}
          img.headimg(src=headimgurl)

官方接口说明传送门

时间: 2024-08-08 13:46:04

微信公众平台(3)-网页授权获取用户基本信息的相关文章

微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动

在腾讯的微信公众平台开发者文档,网页授权获取用户基本信息这一节中写道”在微信公众号请求用户网页授权之前,开发者需要先到公众平台网站的我的服务页中配置授权回调域名.请注意,这里填写的域名不要加http://“,链接: http://mp.weixin.qq.com/wiki/index.php?title=%e7%bd%91%e9%a1%b5%e6%8e%88%e6%9d%83%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e5%9f%ba%e6%9c%ac%e4%bf%

使用微信公众平台测试账号开发“网页授权获取用户基本信息”功能

众所周知,微信公众号分为订阅号.服务号和企业号.撇开企业号不谈,虽然只有服务号能够通过微信接口获得用户级别信息(特别是针对每个公众号唯一的openId),但我们可以仍可以在未认证的订阅号中通过平台测试号开发测试用户基本信息. 微信第三方登录的原理和流程不再赘述,下面说明一下测试号开发的过程. 首先打开测试页面,先登录任一类型的公众号(包括未认证的),在左侧菜单找到 开发-->开发者工具,进入“公众平台测试账号”,这里时需要刷微信认证的二维码(任一微信账户都可以,与登录微信公众平台的账号无关).

微信公众平台网页授权获取用户基本信息(VS.NET版)

一.前期准备工作 1.接口权限表点击修改[OAuth2.0网页授权].(读者可网上搜索什么是OAuth2.0) 注意:此处应填写与回调页面相同的域名. 2.编写正确的URL https://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号APPID &redirect_uri= RedirectUri&response_type=code&scope=snsapi_userinfo&state=STATE#wecha

微信公众号开发系列-网页授权获取用户基本信息

OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享.微信签到.微信商城购物等: 1.高级接口OAuth2.0网页授权设置 a.进入高级接口列表-OAuth2.0-点击修改设置授权域名,域名可以上一级域名和二级域名 b.填写要设置授权域名,我这里用的的是二级域名 体授权Url规则见下面详细描述,主要摘自微信公众平台开发文档,点击进入 2.网页授权获取用户基本信息说明 如果用户在微信中(Web微信除外)访问公众号的第三方网页

微信开发 网页授权获取用户基本信息

微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method

微信网页授权获取用户基本信息--PHP

现在就说说怎么通过网页授权获取用户基本信息(国家,省,市,昵称)等. 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息.换到认证的公众账号就正常了! 如果您也遇到这个问题,可以试试在认证的公众账号里测试一下! 感谢大家的支持! 填写授权回调页面的域名 登录公众平台-->开发者中心-->接口权限表 找到 网页授权获取用户基本信息  然后修改-->填写你的域名.如下: 保存即可! ------------

微信公众平台接口教程:获取用户发送的地理位置xml

微信公众平台接口获取用户发送的地理位置xml 实现的功能就是,当用户向我的公众平台发送一个当前位置,我要在卫星API中获取这个位置的经度纬度(x,y)然后通过这个经纬度接百度地图接口查询这个位置附近的饭店有哪些. 说白了,就是食神摇摇的那个功能.先贴上,用户向公众平台发送的位置的xml 1 <xml> 2 <ToUserName><![CDATA[toUser]]></ToUserName> 3 <FromUserName><![CDATA

微信开发之网页授权获取用户基本信息

微信官方文档:网页授权获取用户基本信息 具体而言,网页授权流程分为四步:1.引导用户进入授权页面同意授权,获取codehttps://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo

微信的接口网页授权获取用户基本信息不是只有认证服务号才有

账号的主体类型是非企业的认证订阅号也有网页授权获取用户基本信息这个接口权限