第三方登陸的一些問題

一、app端和網站統一用戶的問題php

新浪微博:uid微博全站統一,請使用uid做爲用戶惟一標識, uid經過access_token解析獲取。json

QQ:須要發送郵件申請打通兩個應用的信息,另外注意一點的就是QQ互聯下邊有人工服務,鏈接很快的。若是不理解能夠找人工。 connect@qq.com<connect@qq.com>發送到這裏,api

  若是QQ回覆:您好,互聯已升級打通方案,目前採用unionID做爲識別同一用戶的標識,請參考附件文檔,完成申請表格,回郵爲您處理,感謝!微信

   能夠使用https://graph.qq.com/oauth2.0/me?access_token=$accesstoken&unionid=1 這個方法獲取用戶的unionid。session

  另外注意一點的是兩個應用獲取我的信息的時候,client_id也就是get_user_info裏邊的oauth_consumer_keyapp

微信:用戶的unionid是惟一的。post

二、網站項目自己集成(PHP)網站

QQ:QQ自己有個集成的demo,本身放在項目中配置下,使用一下就能夠了,下邊這個是CI的一些ui

  

//qqcallback
    public function qqlogin() {
        require_once './libraries/qqConnectAPI.php';
        $qc = new QC();
        $accesstoken = $qc->qq_callback();
        $openid = $qc->get_openid();
        $unionid_url = "https://graph.qq.com/oauth2.0/me?access_token=$accesstoken&unionid=1";
        $unionid_res = file_get_contents($unionid_url);
        if(strpos($unionid_res, "callback") !== false){

            $lpos = strpos($unionid_res, "(");
            $rpos = strrpos($unionid_res, ")");
            $response = substr($unionid_res, $lpos + 1, $rpos - $lpos -1);
        }
        $response_arr = json_decode($response,TRUE);
        if(empty($response_arr['unionid'])){
            exit('403');
        }
        $unionid = $response_arr['unionid'];
        print_r($unionid);
        exit();
        if(!empty($accesstoken) && !empty($openid)){
            $devid = "6B4E99F2-3F55-40C3-8B4A-8430172F90A3";
            //***************************
            //下邊的就是一些項目的操做已經刪除了
        }
    }
    //qq登錄請求的接口//這個直接請求就能夠了
    public function qqReq() {
        session_start();
        require_once './libraries/qqConnectAPI.php';
        $qc = new QC();
        $qc->qq_login();
    }

 

微博:微博也有demo,複製到項目中路徑不出錯就能夠了,下邊的就是微博的demo了this

//微博登陸callback
    public function weibocallback(){
        $code = $this->input->get("code",TRUE);
        echo $code;
//        $posturl = 'https://api.weibo.com/oauth2/access_token';
        include_once( './libraries/saetv2.ex.class.php' );
        $param["code"] = $code;
        $param["redirect_uri"] = $this->WB_CALLBACK_URL;
        $o = new SaeTOAuthV2($this->WB_AKEY , $this->WB_SKEY );
        $res = $o->getAccessToken('code',$param);
        print_r($res);
        if(isset($res['access_token']) && !empty($res['access_token'])){
            
            $accesstoken = $res['access_token'];                               
            $openid = $res['uid'];
            //跟上邊同樣刪除了
        }
        
        
    }
    //微博請求的接口//這個能夠放在《a href=""》裏邊
    public function weiboReq(){
        include_once( './libraries/saetv2.ex.class.php' );
        $o = new SaeTOAuthV2($this->WB_AKEY , $this->WB_SKEY );
        $code_url = $o->getAuthorizeURL($this->WB_CALLBACK_URL );
        echo $code_url;
    }
相關文章
相關標籤/搜索