zoukankan      html  css  js  c++  java
  • 夺命雷公狗---微信开发51----网页授权(oauth2.0)获取用户基本信息接口(1)

    如果用户在微信客户端访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,从而实现业务逻辑。

    一般我们用来“数据采集”,“市场调查”,“投票”,只要授权了第三方网页,微信用户无需注册就可以访问这些网页

    oauth网页授权有两种方式:

    1.base(基本型)用户可直接通过链接访问,相应的微信公众号只能获取用户的openid,无法获取到其他信息。

    2.Userinfo(用户信息型),访问时候会弹出授权页面,同意后微信公众账号可以获取用户其他信息,比如昵称头像,性别,地址等

    base型授权流程原理分析,(这里很重要噢)。。

    先来手册里面看下:

    主要是分为4步走,如果还是不懂可以通过观看下图即可:

    我们开始配置好授权页面的域名,注意这里填写的是域名,而且不要带http://,可以简单的理解成就是第三放网站所在的域名,如下图所示:

    然后我们来创建一个create_baseurl.php的文件,代码如下所示:

    <?php
        header("Content-Type:text/html;charset=utf-8");
        require_once "get_token.php";
        require_once "common.php";
    
        //公众号的appid
        $appid = "wxed89d8f74fa6fc51";
        //回调url,也就是第三方页面
        $base_redirect_uri = "http://weixin.showtp.com/vote1.php";
        $base_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$base_redirect_uri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
        echo "您发送的值是:{$base_url}<br />";
        
        
        //这里可以写得更人性化一点,通过表单post过来即可
        $contentStr = $base_url;
        //因为是测试蓄意将openid写死了
        $fromUsername = 'oB1_6tzeHj-KG7kL8Thmu6VcF2BM';
        //因为可能会存在中文所以需要url编码
        $contentStr = urlencode($contentStr);
        //到时候我们我发送的内容我们放到一个数组里面去了
         $content_arr = array('content'=>"{$contentStr}");
        //这里的意思是将来我要发送消息给这个用户
        $reply_arr = array('touser'=>"{$fromUsername}",'msgtype'=>'text','text'=>$content_arr);
        //下一步就是将编码转成规定的json格式
        $post = json_encode($reply_arr);
        //url解码,如果不解码他将会发来一段二进制代码
        $post = urldecode($post);
        $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$access_token}";
        //处理好了直接发送
        http_request($url,$post);
        
        echo "发送成功咯";

    然后创建一个vote1.php的文件,主要是测试下看过他是否能跳转,代码如下所示:

    <!doctype html> 
    <html> 
        <head> 
            <meta charset="utf-8"> 
            <title>你最喜欢那个类型的女人</title> 
            <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"> 
            <meta name="apple-mobile-web-app-capable" content="yes"> 
            <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
            <meta name="format-detection" content="telephone=no"> 
            <link href="./jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css"> 
            <script src="./jquery-1.6.4.min.js" type="text/javascript"></script> 
            <script src="./jquery.mobile-1.0.min.js" type="text/javascript"></script> 
        </head> 
        <body> 
            <div data-role="page" id="page3"> 
                <div data-role="header"> 
                    <h1>你最喜欢那个类型的女人</h1> 
                </div> 
                <div data-role="content"> 
                    <form action="#" method="get" data-ajax="false" > 
                        <div data-role="fieldcontain"> 
                            <fieldset data-role="controlgroup"> 
                                <legend>你最喜欢那个类型的女人</legend> 
                                    <input type="radio" name="radio1" id="radio1_0" value="温柔" /> 
                                    <label for="radio1_0">温柔</label> 
                                    <input type="radio" name="radio1" id="radio1_1" value="开朗" /> 
                                    <label for="radio1_1">开朗</label>
                                    <input type="radio" name="radio1" id="radio1_2" value="拨辣" /> 
                                    <label for="radio1_2">拨辣</label> 
                                    <input type="radio" name="radio1" id="radio1_3" value="文静" /> 
                                    <label for="radio1_3">文静</label> 
                            </fieldset> 
                        </div>  
                    <div class="ui-block-a"> 
                        <button type="submit" data-role="button" >点击提交</button> 
                    </div> 
                </div> 
            </div> 
                </form> 
        </body> 
    </html> 

    然后在浏览器上打开create_baseurl.php文件,然后对她进行访问,效果如下所示:

    然后手机端将会收到一条链接,点击那条链接进入vote1.php如果能成功跳转,那么恭喜您,您已经成功了一大半部分咯,嘻嘻

  • 相关阅读:
    bzoj 1295 [SCOI2009]最长距离 最短路
    bzoj 3669 [Noi2014]魔法森林
    bzoj 1432 [ZJOI2009]Function 思想
    用JSP输出Hello World
    Web开发基础
    JSP相关背景
    JSP概述
    Java视频播放器的制作
    为JFileChooser设定扩展名过滤
    使用JFileChooser保存文件
  • 原文地址:https://www.cnblogs.com/leigood/p/5252585.html
Copyright © 2011-2022 走看看