QQ第三方登入例項demo(QQSDK包優化)

woshihaiyong168發表於2017-02-16



  實現效果:


實現流程:


1、註冊QQ互聯開發者

QQ互聯官網

註冊成為開發者(需要稽核)


2、稽核通過之後

申請應用(需要互聯人員稽核*需要備案成功的線上域名)


下面我們開始下載QQsdk包

QQsdk包

我下載的是php的


下載之後放在域名根目錄下

訪問 域名/Connect2.1


輸入appId 、appkey 、以及回撥地址:域名/Connect2.1/callpack.php(也可以按照例子面試試)  一般只點選 getuserinfo


完成


優化SDK包

1、將em../auth/callbac.php 放到connect2.1目錄下 將除了API目錄以外的目錄全部刪除 並將API下的所有檔案及目錄移動到connect2.1/下  刪除API


2、開啟 qqConnectAPI.php 修改

  

<?php
session_start();
/* PHP SDK
 * @version 2.0.0
 * @author connect@qq.com
 * @copyright © 2013, Tencent Corporation. All rights reserved.
 */

//require_once(dirname(__FILE__)."/comm/config.php");
//修改ROOT 為QQ_CONNECT_ROOT 
//修改CLASS_PATH 為 QQ_CLASS_PATH  為了避免與本地專案常量衝突  將整個個connect2.1下的全部替換

define("QQ_CONNECT_ROOT",dirname(__FILE__)."/");
define("QQ_CLASS_PATH",QQ_CONNECT_ROOT."class/");

require_once(QQ_CLASS_PATH."QC.class.php");

3、刪除comm 下的conf.php 以及utils.php

4.修改 class 下的Recorder.class.php

 

    public function __construct(){
        $this->error = new ErrorCase();

     
        //將comm/下的inc.php 資訊 複製過來 並刪除inc.php  並刪除comm目錄
        $incFileContents = '{"appid":"101337757","appkey":"f6588ae8cc52093202d92f6ee33d9af9","callback":"http://www.qqq.com/callback.php","scope":"get_user_info","errorReport":true,"storageType":"file","host":"localhost","user":"root","password":"root","database":"test"}'
        
       

        //-------讀取配置檔案
        //$incFileContents = file(ROOT."comm/inc.php");
        // $incFileContents = $incFileContents[1];
        // $this->inc = json_decode($incFileContents);
        
/********/
        //將上列的contents 轉位下列的模式
        $this->inc->appid = "101337757";
        $this->inc->appkey = "f6588ae8cc52093202d92f6ee33d9af9";
        $this->inc->callback = "http://www.qqq.com/callback.php";
        $this->inc->scope = "get_user_info";
        $this->inc->errorReport = true;
        $this->inc->storageType = "file"
        $this->inc->host = "localhost";
        $this->inc->user = "root";
        $this->inc->password = "root";
        $this->inc->database = "test";
/********/      
        

        if(empty($this->inc)){
            $this->error->showError("20001");
        }

        if(empty($_SESSION['QC_userData'])){
            self::$data = array();
        }else{
            self::$data = $_SESSION['QC_userData'];
        }
    }

完成!

在根目錄下定義:

function.php

<?php  

/**
 * [debug 除錯輸出函式]
 * @param  [mix]  $val  [除錯輸出源]
 * @param  [bool]  $dump [是否啟用var_dump除錯]
 * @param  boolean $exit [是否在除錯結束後設定斷點]
 * @return        [void]
 */
function debug($val,$dump=flase,$exit=true){
	 //自動或區域除錯函式名稱$func
	 if($dump){
	 	$func = 'var_dump';
	 }else{
	 	$func = (is_array($val) || is_object($val)) ? 'print_r' : 'printf';
	 }

	 //輸出到html
	 header("Content-type:text/html;charset=utf-8");
	 echo "<pre>debug output:<hr/>";
	 $func($val);
	 echo '</pre>';
     if($exit) exit;
}




?>

定義:qqlogin.php

<?php 
require_once 'function.php';
require_once 'Connect2.1/qqConnectAPI.php';

//訪問QQ的登入頁面
$oauth = new Oauth();
$oauth->qq_login();




 ?>


建立index.html

將qq登陸圖片放入頁面中、點選跳入到qqlogin.php




修改callback.php

<?php
require_once("./qqConnectAPI.php");
$qc = new QC();
echo $qc->qq_callback();
echo $qc->get_openid();


完成!!!!!!



專案中截圖調取API  示例 :




相關文章