zoukankan      html  css  js  c++  java
  • 【咸鱼教程】微信网页授权(获取用户头像、昵称等)

    教程目录
    一 流程图
    二 微信测试号申请
    三 新建Egret项目
    四 微信网页授权流程
    五 微信Web开发者工具
    六 Demo下载



    一、流程图
     

    二、微信测试号申请

    测试号申请参考之前教程:http://bbs.egret.com/thread-26429-1-1.html

    申请微信测试号后,要测试网页授权,需要设置授权回调页面域名。

     

     


    现在我们有了一个可以测试微信授权的账号。

    三、新建Egret项目
    新建一个egret项目,里面啥也没有,只有一个label显示将要获取的微信用户信息。
    nickname需要显示中文,要用到decodeURI。
     


    四、微信网页授权流程
    微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

     

    我们的demo,php文件主要有以下几个:
     
    access_token.php   保存获取到access_token(这里我测试是一直重新获取access_token,所以没用到)
    HttpUtils.php            https请求
    index.php                 主页
    wechat.php              网页授权获取用户信息


    1. index.php  (获取code)
     
    appid:测试微信号的appid
    redirect_uri:回调页面。获取code后,会跳转到页面。
    response_type:返回类型
    scope:授权类型,静默授权或用户授权
    state:重定向带上的State参数,直接填STATE
    wechat_redirect:重定向必须带上


    2. wechat.php   (code换access_token,拉取用户信息,重定向到egret)

    [Actionscript3] 纯文本查看 复制代码
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
            require_once "HttpUtils.php";
             
            //1.获取code
            $httpUtils = new HttpUtils();
            $code = $_GET["code"];
     
            if($code != null){
                    echo("code is have");
     
                    //2. 通过code换取网页授权access_token
                    $res = json_decode($httpUtils->httpGet($url));
                    $access_token = $res->access_token;
                    $openid = $res->openid;
                    $expires_in = $res->expires_in;
                    $refresh_token = $res->refresh_token;
                    $scope = $res->scope;
             
                    //3. 拉取用户信息(需scope为 snsapi_userinfo)       
                    $url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
                    $userInfoResult = json_decode($httpUtils->httpGet($url));
                    echo("</br>");
                    echo("openid:".$userInfoResult->openid."</br>");
                    echo("nickname:".$userInfoResult->nickname."</br>");
                    echo("sex:".$userInfoResult->sex."</br>");
                    echo("province:".$userInfoResult->province."</br>");
                    echo("city:".$userInfoResult->city."</br>");
                    echo("country:".$userInfoResult->country."</br>");
                    echo("headimgurl:".$userInfoResult->headimgurl."</br>");
                    echo("privilege:".$userInfoResult->privilege."</br>");
                    echo("unionid:".$userInfoResult->unionid."</br>");
     
                    //4.重定向
                    $openid = $userInfoResult->openid;
                    $nickname = $userInfoResult->nickname;
                    header('Location:[url]http://120.24.188.118/Example/weixin_php_scope/egret/index.html'.[/url]"?openid=".$openid."&nickname=".$nickname);
                     
     
            }else{
                    echo("code is null");
            }
    ?>



    拉取用户信息成功
     

     



    五、微信Web开发者工具
    在pc端测试时,可以用这个工具,具体用法不再赘述。
    官方下载地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140

    六、Demo下载(含php和egret)

    https://coding.net/u/gamedaybyday/p/EgretExample/git/tree/master/WxShouQuanDemo

  • 相关阅读:
    Java中的静态方法
    捕获异常代码
    重载与重写的区别
    继承代码
    Android Studio 快捷键一览
    android两种基本联网方式与一种第三方开源项目的使用
    Android Studio导入github下载的project和module
    SlidingMenu 侧滑菜单的用法
    显示图片的(自定义)吐司Toast
    用volley在Genymotion上获取网页源码
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/9219910.html
Copyright © 2011-2022 走看看