首页 后端开发 php教程 新浪,腾讯,淘宝登陆_PHP教程

新浪,腾讯,淘宝登陆_PHP教程

Jul 20, 2016 am 11:13 AM
c code login response state type url 可以 新浪 淘宝 登陆 腾讯

可以直接拿去用了

<?<span php
</span><span session_start</span><span ();
</span><span class</span><span  openlogin{
        
        </span><span public</span> <span $_URL</span> = ""<span ;
        
        </span><span public</span> <span $config</span>    =    <span array</span><span ();

        </span><span public</span> <span function</span><span  __construct(){
            </span><span $this</span>-><span openlogin();
        }
        </span><span function</span><span  openlogin(){    

        }

        </span><span /*</span><span 获取登陆页面URL</span><span */</span>
        <span public</span> <span function</span><span  login_url(){
            
            </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
                </span><span return</span> <span false</span><span ; 
            }
            
            </span><span $config</span> = <span $this</span>-><span config;
            </span><span $login_url</span>    =    <span $config</span>['login_url'<span ];
            </span><span $_SESSION</span>['state'] = <span $state</span> = <span md5</span>(<span uniqid</span>(<span rand</span>(), <span TRUE</span><span ));
            </span><span $array</span> = <span array</span><span (
                </span>"response_type"=>"code",
                "state"    =>    <span $state</span>,
                "client_id"=><span $config</span>['appkey'],
                "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'<span ] )
            );

            </span><span $this</span>->set(<span $array</span><span );

            </span><span $url</span>    =  <span $this</span>->combineURL(<span $login_url</span> , <span $this</span>-><span _param);

            </span><span if</span>(<span $url</span><span ){
                @</span><span header</span>("Location:".<span $url</span><span );
            }</span><span else</span><span {
                </span><span return</span> <span false</span><span ;
            }
        }

        </span><span /*</span><span 获取access_token</span><span */</span>
        <span public</span> <span function</span><span  get_access_token(){
            </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
                </span><span return</span> <span false</span><span ; 
            }

            </span><span $config</span> = <span $this</span>-><span config;

            </span><span if</span>(! <span $config</span>['code'] = <span $_REQUEST</span>['code'<span ] ){
                </span><span return</span> <span false</span><span ;
            }

            </span><span $url</span>    =    <span $config</span>['authorization_url'<span ];
            </span><span $state</span>    =    <span $_SESSION</span>['state'<span ];
            </span><span $array</span> = <span array</span><span (
                </span>"grant_type"=>"authorization_code",
                "client_id"    =>    <span $config</span>['appkey'],
                "client_secret"=><span $config</span>['appsecret'],
                "code"=><span $config</span>['code'],
                "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'] ),
                "state"=><span $state</span><span 
            );
            </span><span $this</span>->set(<span $array</span><span );
            </span><span return</span>  <span $this</span>->post_contents(<span $url</span><span );
        }        
    
    
        
        </span><span /*</span><span  set $this->_param 数组</span><span */</span>
        <span public</span> <span function</span> set(<span $array</span><span ) {
            </span><span if</span>(<span empty</span>(<span $array</span><span )){
                </span><span return</span> <span false</span><span ;
            }
            </span><span $this</span>->_param = <span array</span><span ();
            </span><span foreach</span>(<span $array</span>  <span as</span> <span $name</span>=><span $value</span><span ){
                </span><span $this</span>->_param[<span $name</span>] = <span $value</span><span ;
            }
        }
        </span><span /*</span><span *
         * post_contents
         * 服务器通过post请求获得内容
         * @param string $url       请求的url,拼接后的
         * @return string           请求返回的内容
         </span><span */</span>
        <span public</span> <span function</span> post_contents(<span $url</span><span ){
            </span><span if</span>(<span empty</span>(<span $url</span><span )){
                </span><span return</span> <span false</span><span ;
            }
            </span><span $param</span>    = <span $this</span>->combineURL("" , <span $this</span>-><span _param);
            </span><span $ch</span> =<span  curl_init();
            </span><span //</span><span  设置URL和相应的选项</span>
            curl_setopt(<span $ch</span>, CURLOPT_URL, <span $url</span><span );    
            curl_setopt(</span><span $ch</span>, CURLOPT_FAILONERROR, <span false</span><span );
            curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, <span true</span><span );
            curl_setopt (</span><span $ch</span>, CURLOPT_SSL_VERIFYPEER, 0<span );  
             curl_setopt (</span><span $ch</span>, CURLOPT_SSL_VERIFYHOST, 0<span ); 
            curl_setopt(</span><span $ch</span>, CURLOPT_POST, 1<span );
            curl_setopt(</span><span $ch</span>, CURLOPT_POSTFIELDS, <span $param</span><span );            
            </span><span //</span><span  抓取URL并把它传递给浏览器</span>
            <span $reponse</span> = curl_exec(<span $ch</span><span );            
            curl_close(</span><span $ch</span><span );
            </span><span return</span> <span $reponse</span><span ;
            
        }
        
        </span><span /*</span><span *
         * get_contents
         * 服务器通过get请求获得内容
         * @param string $url       请求的url,拼接后的
         * @return string           请求返回的内容
         </span><span */</span>
        <span public</span> <span function</span> get_contents(<span $url</span><span ){
                </span><span $ch</span> =<span  curl_init();
                curl_setopt(</span><span $ch</span>, CURLOPT_SSL_VERIFYPEER, <span FALSE</span><span );
                curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, <span TRUE</span><span );
                curl_setopt(</span><span $ch</span>, CURLOPT_URL, <span $url</span><span );
                </span><span $response</span> =  curl_exec(<span $ch</span><span );
                curl_close(</span><span $ch</span><span );

            </span><span //</span><span -------请求为空</span>
            <span if</span>(<span empty</span>(<span $response</span><span )){
                </span><span return</span> <span false</span><span ;
            }

            </span><span return</span> <span $response</span><span ;
        }

        </span><span /*</span><span *
             * combineURL
             * 拼接url
             * @param string $baseURL   基于的url
             * @param array  $keysArr   参数列表数组
             * @return string           返回拼接的url
             </span><span */</span>
        <span public</span> <span function</span> combineURL(<span $baseURL</span>,<span $keysArr</span><span ){
            </span><span if</span>( <span $baseURL</span>==""<span  ){
                </span><span $combined</span>    =    ""<span ;
            }</span><span else</span><span {
                </span><span $combined</span> = <span $baseURL</span>."?"<span ;
            }
            </span><span $valueArr</span> = <span array</span><span ();

            </span><span foreach</span>(<span $keysArr</span> <span as</span> <span $key</span> => <span $val</span><span ){
                </span><span $valueArr</span>[] = "<span $key</span>=<span $val</span>"<span ;
            }

            </span><span $keyStr</span> = <span implode</span>("&",<span $valueArr</span><span );
            </span><span $combined</span> .= (<span $keyStr</span><span );
            
            </span><span return</span> <span $combined</span><span ;
        }
        
}


</span><span class</span> qq_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "qq"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "redirect_uri"=>"XXXXX",
                "login_url" => "https://graph.qq.com/oauth2.0/authorize",    
                "scope"=>"get_user_info,add_share,list_album,add_album,upload_pic,add_topic,add_one_blog,add_weibo,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,get_tenpay_addr",
                "authorization_url"=>"https://graph.qq.com/oauth2.0/token"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }


    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();
        
        </span><span /*</span><span 检测错误是否发生</span><span */</span>
        <span if</span>(<span strpos</span>(<span $response</span>, "callback") !== <span false</span><span ){

            </span><span $lpos</span> = <span strpos</span>(<span $response</span>, "("<span );
            </span><span $rpos</span> = <span strrpos</span>(<span $response</span>, ")"<span );
            </span><span $response</span>  = <span substr</span>(<span $response</span>, <span $lpos</span> + 1, <span $rpos</span> - <span $lpos</span> -1<span );
            </span><span $msg</span> = json_decode(<span $response</span><span );

            </span><span if</span>(<span isset</span>(<span $msg</span>-><span error)){
                </span><span return</span> <span false</span><span ;
            }
        }

        </span><span $params</span> = <span array</span><span ();
        </span><span parse_str</span>(<span $response</span>, <span $params</span><span );
        </span><span /*</span><span access_token == $params[access_token]</span><span */</span>
        
        <span /*</span><span 获取 openid </span><span */</span>
        <span $response</span>    =    <span $this</span>->get_contents("https://graph.qq.com/oauth2.0/me?access_token=".<span $params</span>['access_token'<span ]);

        </span><span //</span><span --------检测错误是否发生</span>
        <span if</span>(<span strpos</span>(<span $response</span>, "callback") !== <span false</span><span ){

            </span><span $lpos</span> = <span strpos</span>(<span $response</span>, "("<span );
            </span><span $rpos</span> = <span strrpos</span>(<span $response</span>, ")"<span );
            </span><span $response</span> = <span substr</span>(<span $response</span>, <span $lpos</span> + 1, <span $rpos</span> - <span $lpos</span> -1<span );
        }

        </span><span $user</span> = json_decode(<span $response</span><span );
        </span><span if</span>(<span isset</span>(<span $user</span>-><span error)){
            </span><span return</span> <span false</span><span ;
        }

        </span><span /*</span><span 
            获取用户信息需要参数:openid(用户的ID,与QQ号码一一对应),access_token(可通过使用Authorization_Code获取Access_Token 或来获取access_token有3个月有效期),oauth_consumer_key(用户appid),format(返回格式) 
                
        </span><span */</span>
        <span /*</span><span 数据库保存</span><span */</span>
        <span $open_param</span>    =    <span array</span><span (
            </span>"openid"=><span $user</span>->openid,
            "access_token"=><span $params</span>['access_token'<span ]
        );
        </span><span //
</span>        <span $open_param</span>['oauth_consumer_key']    =    <span $this</span>->config['appkey'<span ];
        </span><span $open_param</span>['format']                =    "json"<span ;
        </span><span /*</span><span 拼接url</span><span */</span>
        <span $get_user_url</span> = <span $this</span>->combineURL("https://graph.qq.com/user/get_user_info",<span $open_param</span><span );
        </span><span //</span><span 猎取用户信息</span>
        <span $userinfo</span>    =    <span $this</span>->get_contents(<span $get_user_url</span><span );        

        </span><span $userinfo</span>    =    json_decode(<span $userinfo</span><span );

        </span><span return</span> <span $userinfo</span><span ;        
    }
}

</span><span class</span> weibo_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "weibo"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "login_url"    =>    "https://api.weibo.com/oauth2/authorize",
                "redirect_uri"=>"XXXXXXX",
                "authorization_url"=>"https://api.weibo.com/oauth2/access_token"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
    }

}

</span><span class</span> taobao_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "taobao"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "redirect_uri"=>"XXXXX",
                "authorization_url"=>"https://oauth.taobao.com/token",
                "login_url"=>"https://oauth.taobao.com/authorize"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
    }

}




</span><span if</span>(<span $_GET</span>['openname'<span ]){
    </span><span $openname</span>    =    <span $_GET</span>['openname']."_openlogin"<span ;
    </span><span $openlogin</span>    = <span new</span> <span $openname</span><span ();
    </span><span if</span>(!<span isset</span>(<span $_REQUEST</span>['code'<span ])){        
        </span><span //</span><span 请求url</span>
        <span $url</span> = <span $openlogin</span>-><span login_url();
        </span><span if</span>(!<span $url</span><span ){
            </span><span echo</span> "0"<span ;
            </span><span exit</span><span ();
        }
    }</span><span else</span><span {
        </span><span if</span>(<span isset</span>(<span $_REQUEST</span>["state"]) && (<span $_SESSION</span>['state']    !=    <span $_REQUEST</span>["state"<span ] )){
            </span><span echo</span> "1"<span ;
            </span><span exit</span><span ();
        }    
    
        </span><span $rs</span> = <span $openlogin</span>-><span get_access_token();
        
        </span><span print_r</span>( <span $rs</span><span  );

    }

}



</span>?>
登录后复制

添加一个人人登陆

<span class</span> renren_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "renren"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appid"=>"your appid",
                "appkey"=>"your appkey",
                "appsecret"=>"your secret key",
                "redirect_uri"=>"XXXXXX",
                "authorization_url"=>"https://graph.renren.com/oauth/token",
                "login_url"=>"https://graph.renren.com/oauth/authorize"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
        </span><span /*</span><span 
                access_token:获取的Access Token;
                expires_in:Access Token的有效期,以秒为单位;
                refresh_token:用于刷新Access Token 的 Refresh Token,长期有效,不会过期;
                scope:Access Token最终的访问范围,既用户实际授予的权限列表(用户在授权页面时,有可能会取消掉某些请求的权限)。关于权限的具体信息请参考
        </span><span */</span><span 
    }

    </span><span /*</span><span 获取登陆页面URL</span><span */</span>
    <span public</span> <span function</span><span  login_url(){
        
        </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
            </span><span return</span> <span false</span><span ; 
        }
        
        </span><span $config</span> = <span $this</span>-><span config;
        </span><span $login_url</span>    =    <span $config</span>['login_url'<span ];
        </span><span $array</span> = <span array</span><span (
            </span>"response_type"=>"code",
            "client_id"=><span $config</span>['appid'],
            "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'<span ] )
        );

        </span><span $this</span>->set(<span $array</span><span );

        </span><span $url</span>    =  <span $this</span>->combineURL(<span $login_url</span> , <span $this</span>-><span _param);

        </span><span if</span>(<span $url</span><span ){
            @</span><span header</span>("Location:".<span $url</span><span );
        }</span><span else</span><span {
            </span><span return</span> <span false</span><span ;
        }
    }

}</span>
登录后复制

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440395.htmlTechArticle可以直接拿去用了 ? = "" = - ( ( - = - = ['login_url' ['state'] = = ( ( (), = "response_type"="code", "state" = , "client_id"= ['appkey'], "redirect_uri"= ( ['redirect_uri'...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

大模型App腾讯元宝上线!混元再升级,打造可随身携带的全能AI助理 大模型App腾讯元宝上线!混元再升级,打造可随身携带的全能AI助理 Jun 09, 2024 pm 10:38 PM

5月30日,腾讯宣布旗下混元大模型全面升级,基于混元大模型的App“腾讯元宝”正式上线,苹果及安卓应用商店均可下载。相比此前测试阶段的混元小程序版本,面向工作效率场景,腾讯元宝提供了AI搜索、AI总结、AI写作等核心能力;面向日常生活场景,元宝的玩法也更加丰富,提供了多个特色AI应用,并新增了创建个人智能体等玩法。“腾讯做大模型不争一时之先。”腾讯云副总裁、腾讯混元大模型负责人刘煜宏表示:“过去的一年,我们持续推进腾讯混元大模型的能力爬坡,在丰富、海量的业务场景中打磨技术,同时洞察用户的真实需求

淘宝免单红包领取方法2024 淘宝免单红包领取方法2024 May 09, 2024 pm 03:22 PM

2024淘宝免单活动每日三场,大家需要在对应时间下单付款对应金额的商品,免单金额是以等额红包形式发放,接下来给大家带来了淘宝免单红包领取方法2024:抢到免单的用户,红包资格将发放至卡券包,为待激活状态;网页版淘宝暂无卡券包,仅做免单活动的中奖记录的展示;卡券包在【淘宝APP-我的淘宝-我的权益-红包】。淘宝免单红包领取方法20241、抢到免单的用户,红包资格将发放至卡券包,为待激活状态;2、网页版淘宝暂无卡券包,仅做免单活动的中奖记录的展示;3、卡券包在【淘宝APP-我的淘宝-我的权益-红包】

淘宝开店注册流程 淘宝开店注册流程 Mar 25, 2024 pm 01:37 PM

1、打开淘宝app,点击右下角的【我的淘宝】,点击右上角【设置】。2、选择【商家入驻】,点击【淘宝开店】,选择【普通商家】。3、在【免费开店】界面,用户可以看到【个人商家】开店的具体流程。4、给自己的小店命名,然后点击【去开店】,三项全部勾选,点击【0元开店】。5、最后完成【实人认证】,完善【店铺基础信息】即可成功开店。

淘宝怎么关掉红包提醒 淘宝怎么关掉红包提醒 Apr 01, 2024 pm 06:25 PM

淘宝是很多小伙伴们常用的网购软件,平时很多东西各位都会从里面下单购买,里面给用户们提供了红包提醒功能,有的朋友们想要来关掉,那么就赶快来PHP中文网看看吧。淘宝关闭红包提醒步骤一览1、打开淘宝APP的个人中心,选择【设置】按钮进入页面。2、找到【消息通知】选项,在这里可以选择消息推送开关,找到红包消息将开关关闭就可以了。3、或者也可以通过手机的设置页面,将淘宝APP的通知权限关闭,这样所有来自淘宝的消息都不会进入推送,只有打开后才能看到。4、用户可以自己设置想要接收哪些类型的消息,这样使用起来也

《淘宝》免单红包退款会退回吗 《淘宝》免单红包退款会退回吗 May 08, 2024 am 08:16 AM

在淘宝购物时,我们经常会使用免单红包来享受优惠。但是,如果我们需要退款,这些免单红包会被退回吗?让我们来看看这个问题的答案。淘宝免单红包退款会退回吗分情况而论获得红包时,红包是待激活状态,在兑换商品之前,这个待激活的红包是没有激活的,暂时无法使用,等购买的商品确认收货之后,待激活状态的红包才可使用。免单红包使用后商品有问题需要退货,那么红包的退回需要按照实际情况来判断:一、退款规则11、红包使用后发生退款,则红包按比例退回。2、在未逾期的情况下,退回红包的使用期限为原定使用期限,如果逾期7天内发

《淘宝》510免单红包怎么用 《淘宝》510免单红包怎么用 May 08, 2024 pm 10:00 PM

淘宝510免单红包怎么用?淘宝近期开展了510周年庆的免单活动,这个活动是可以获取免单红包的,福利非常的多,相信很多小伙伴都想参与这个活动,也有小伙伴已经领取到了免单红包,但是却不知道具体的用法,今天就带大家一起来看看相关的介绍吧。淘宝510周年庆免单红包使用介绍使用方:猜题下单的所有订单确认收货后,免单红包即可使用。一、免单红包发放及追回用户可以通过网页版淘宝暂无卡券包,但可在【淘宝APP-我的淘宝-我的权益-红包】处查看。抢到免单的用户,红包资格将发放至卡券包,为待激活状态;卡券包在进行中奖

Up主已经开始鬼畜,腾讯开源「AniPortrait」让照片唱歌说话 Up主已经开始鬼畜,腾讯开源「AniPortrait」让照片唱歌说话 Apr 07, 2024 am 09:01 AM

AniPortrait模型是开源的,可以自由畅玩。「小破站鬼畜区的新质生产力工具。」近日,腾讯开源发布的一个新项目在推上获得了如此评价。这个项目是AniPortrait,其可基于音频和一张参考图像生成高质量动画人像。话不说多,我们先看看可能会被律师函警告的demo:动漫图像也能轻松开口说话:该项目刚上线几天,就已经收获了广泛好评:GitHubStar数已经突破2800。下面我们来看看AniPortrait的创新之处。论文标题:AniPortrait:Audio-DrivenSynthesisof

淘宝大赢家3月31日:唐朝时人们还可以称父亲为 淘宝大赢家3月31日:唐朝时人们还可以称父亲为 Mar 31, 2024 pm 12:11 PM

淘宝大赢家3月31日问题:唐朝时,人们还可以称父亲为?有很多用户不知道唐朝时,人们还可以称父亲为什么?,那么接下来小编就为大家带来了3.31淘宝大赢家每日一猜今日答案分享,感兴趣的小伙伴快来了解一下吧。淘宝每日一猜答案大全淘宝大赢家3月31日:唐朝时,人们还可以称父亲为?问题:唐朝时,人们还可以称父亲为?答案:B.哥哥答案解析:1、点击进来找线索,在如下图的页面即可找到问题的答案;2、唐代人可以称父亲为哥哥,《旧唐书·王琚传》中“玄宗曰:四哥仁孝”;3、这里的“四哥”,指的是玄宗的父亲睿宗,在同

See all articles