1. 程式人生 > >php使用第三方QQ登入

php使用第三方QQ登入

前言:

PHP實現QQ快速登入,羅列了三種方法

方法一:面向過程,回撥地址和首次觸發登入寫到了一個方法頁面【因為有了if做判斷】,

        方法二,三:面向物件
            1.先呼叫登入方法,向騰訊傳送請求,
            2.騰訊攜帶本網站唯一對應引數OPENID,ACCESSTOKEN,返回到對應回撥頁面,
            3.回撥頁面接受到騰訊的引數後,通過這個兩個引數,再發出對應的請求,如查詢使用者的資料。
            4.騰訊做出對應的操作,如返回這個使用者的資料給你

即使你沒看懂,也沒關係,按照我下面的流程來,保證你可以實現。

前期準備:

使用人家騰訊的功能,總得和人家打招呼吧!

進入網址後,按如下操作來:

一.進入官網


二.申請建立【網站】應用


三.按要求填寫資料

注意網站地址:填寫你要設定快速登入的網址,eg:http://www.test.com;  

回撥地址:填寫你傳送QQ快速登陸後,騰訊得給你資訊,這個資訊往此頁面接受。eg:http://www.test.com/accept_info.php

【詳細的申請填寫,請見官方提示,這裡不做贅述】


四.申請成功後,完善資訊

最終要求,獲得APP_ID ,APP_KEY

五.程式碼部分:在你對應的PHP檔案內寫入,如下

 //方法一,面向過程法
 使用方法:配置$app_id,$app_secret,$my_url後,其他原封複製即可,$user_data為返回的登入資訊
 程式碼:
  1. //應用的APPID
  2.            $app_id = "你的APPID";  
  3.            //應用的APPKEY
  4.            $app_secret = "你的APPKEY";  
  5.            //【成功授權】後的回撥地址,即此地址在騰訊的資訊中有儲存
  6.            $my_url = "你的回撥網址"
    ;  
  7.            //Step1:獲取Authorization Code
  8.            session_start();  
  9.            $code = $_REQUEST["code"];//存放Authorization Code
  10.            if(empty($code))  
  11.            {  
  12.                //state引數用於防止CSRF攻擊,成功授權後回撥時會原樣帶回
  13.                $_SESSION['state'] = md5(uniqid(rand(), TRUE));  
  14.                //拼接URL
  15.                $dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="
  16.                    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
  17.                    . $_SESSION['state'];  
  18.                echo("<script> top.location.href='" . $dialog_url . "'</script>");  
  19.            }  
  20.            //Step2:通過Authorization Code獲取Access Token
  21.            if($_REQUEST['state'] == $_SESSION['state'] || 1)  
  22.            {  
  23.                //拼接URL
  24.                $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"
  25.                    . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)  
  26.                    . "&client_secret=" . $app_secret . "&code=" . $code;  
  27.                $response = file_get_contents($token_url);  
  28.                if (strpos($response"callback") !== false)//如果登入使用者臨時改變主意取消了,返回true!==false,否則執行step3
  29.                {  
  30.                    $lpos = strpos($response"(");  
  31.                    $rpos = strrpos($response")");  
  32.                    $response  = substr($response$lpos + 1, $rpos - $lpos -1);  
  33.                    $msg = json_decode($response);  
  34.                    if (isset($msg->error))  
  35.                    {  
  36.                        echo"<h3>error:</h3>" . $msg->error;  
  37.                        echo"<h3>msg  :</h3>" . $msg->error_description;  
  38.                        exit;  
  39.                    }  
  40.                }  
  41.                //Step3:使用Access Token來獲取使用者的OpenID
  42.                $params = array();  
  43.                parse_str($response$params);//把傳回來的資料引數變數化
  44.                $graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token'];  
  45.                $str  = file_get_contents($graph_url);  
  46.                 if (strpos($str"callback") !== false)  
  47.                 {  
  48.                     $lpos = strpos($str"(");  
  49.                     $rpos = strrpos($str")");  
  50.                     $str  = substr($str$lpos + 1, $rpos - $lpos -1);  
  51.                 }  
  52.                 $user = json_decode($str);//存放返回的資料 client_id  ,openid
  53.                 if (isset($user->error))  
  54.                 {  
  55.                     echo"<h3>error:</h3>" . $user->error;  
  56.                     echo"<h3>msg  :</h3>" . $user->error_description;  
  57.                     exit;  
  58.                 }  
  59.                 //echo("Hello " . $user->openid);
  60.                 //echo("Hello " . $params['access_token']);
  61.                //Step4:使用<span style="font-family: Arial, Helvetica, sans-serif;">openid,</span><span style="font-family: Arial, Helvetica, sans-serif;">access_token來獲取所接受的使用者資訊。</span>
  62.                $user_data_url

    相關推薦

    php使用第三方QQ登入

    前言: PHP實現QQ快速登入,羅列了三種方法 方法一:面向過程,回撥地址和首次觸發登入寫到了一個方法頁面【因為有了if做判斷】,         方法二,三:面向物件             1.先呼叫登入方法,向騰訊傳送請求,          

    第三方QQ登入--分享

    activity_main <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    umeng第三方QQ登入實現

    MainActivity package com.umeng.soexample; import android.Manifest; import android.content.Intent; import android.os.Build; import android.suppo

    第三方qq登入介面

    QQ第三方登入 1.首先就是去QQ互聯登入申請了,為什麼要申請呢,是應為他會給你分配一個appid和一個appkey給,不然你是沒有資格去第三方登入的,申請大概一個星期左右 ** 唯一需要注意的是第二個 回撥地址了 這個是可以隨時修改的 2.獲取到了a

    PHP實現QQ登入的開發教程

    第三方登入,就是使用大家比較熟悉的比如QQ、微信、微博等第三方軟體登入自己的網站,這可以免去註冊賬號、快速留住使用者的目的,免去了相對複雜的註冊流程。下邊就給大家講一下怎麼使用PHP開發QQ登入的功能。   1、進入QQ互聯官網進行登入(可以使用自己的QQ或者重新註冊一

    Android-使用Android Studio實現第三方QQ登入

    專案結構如下 開啟我們的清單檔案Androidmanifest 在裡面加入許可權和註冊Activity 如下 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android

    第三方QQ登入和分享

    目前大多數APP都包含了第三方平臺的登入,特別是QQ和微信,這篇部落格主要講的是如何實現QQ第三方平臺實現QQ登入和分享功能,功能包含: 登入授權登入獲取使用者資訊(暱稱,頭像,地址等)QQ分享給好友QQ分享到空間先看看效果圖:   要實現以上功能,首先得去騰訊開放平臺 註冊成為開發者,然後建立應用,得到

    使用php操作qq第三方登入

    1.首先進入connect.qq.com進行登入註冊認證等相關資訊 2.配置應用的回撥域等相關資訊(十分重要) 3.下載php版本的sdk包 http://sznk.fcloud.store.qq.com/store_raw_download?buid=16821&

    PHP第三方登入QQ登入

    接入QQ登入前置條件 申請AppID 和Appkey 登入QQ互聯申請網站應用或移動應用接入 按照步驟申請成功後,建立應用即可看到對應的AppId和AppKey 引入官方SDK

    php實現qq第三方登入

         一:申請appid和appkey 網址:http://connect.qq.com/ (QQ互聯開放平臺)  二:下載官方SDK(qqConnect_Server_SDK-php_v2.1解壓放在專案目錄下),執行install,填寫APP ID,APP KE

    第三方使用QQ登入、分享

    使用友盟:http://www.umeng.com/codecenter.html 將官方的demo匯入libs下的jar,匯入Res下的drawable、layout、values, 在專案同級的下匯入簽名檔案 <!--友盟所用的許可權--> <uses-pe

    Django 專案總結(3)- 第三方登入QQ登入

    第三方登入(QQ 登入) 根據 qq 開發文件 oauth2.0 QQ 登入流程: 前端頁面點選 QQ 登入,需要跳轉到 QQ 的登入頁面,但是前端不知道 QQ 的登入連結,所以先想後端傳送請求,由伺服器生成 QQ 登入頁地址,返回給前端; 使用者在

    網站接入第三方登入功能:Java開發QQ登入

      我的個人部落格:http://www.zjhuiwan.cn QQ登入確實比自己註冊賬戶登入要方便的多,所以就搞了個QQ登入。QQ互聯開放平臺為第三方網站提供了豐富的API。第三方網站接入QQ互聯開放平臺後,即可通過呼叫平臺提供的API實現使用者使用QQ帳號登入網站功能,且

    PHP第三方登入學習筆記

    一、OAuth2.0 (一)什麼是OAuth 全稱為Open Authorization,即開放式授權。 OAuth協議為使用者資源的授權提供了一個安全的、開放而又簡易的標準。與以往的授權方式不同之處是OAuth的授權不會使第三方觸及到使用者的賬戶資訊(如

    網站接入QQ登入QQ互聯)php版的流程

    0、下載QQ登入(QQ互)php版:下載地址:點選開啟連結(本文編寫時最新版本:V2.1 ) 1、在QQ網際網路站註冊一個appid,配置網站地址和回撥地址。  例:http://yzdd.app1101808733.twsapp.com    yzdd.app110180

    第三方外掛的引用(4):JAVA網站接入QQ登入

    package com.pro.huanbao.common.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWri

    第三方網站使用qq登入

    qq作為國內最重要的交流工具,已經被大部分人所接受,而且qq幾乎成了人們不可缺少的溝通橋樑,為此,騰訊給出了qq互聯的api,通過這些api,我們就可以獲得登入使用者的一些資訊,由此可以使使用者免去註冊的麻煩。 下面介紹下qq互聯的步驟: 1.需要到http://conn

    第三方登入QQ登入)開發流程詳解

      近排由於工作的繁忙,已經一個星期沒寫博文做分享了,接下來我對網站接入第三方登入----QQ登入的實現邏輯做一個詳細的講解。   對於整個流程的詳細文件可以到QQ互聯官網(http://wiki.connect.qq.com)檢視,我這裡就簡單地進行描述,主要是分析程式碼的實現過程。   我用的是C

    PHP第三方登陸(QQ\微博版)

      上面說的一點題外話,今天要說的是一個大家比較熟悉的東西:第三方登入,因為我的這個畢業設計要用到,所以就順便加了一下,第三方登陸還是很有用的,這個是現在應用級網站的必備,現在的使用者一般都不會去主動去你的註冊,一般都是通過第三方的社交賬號去登陸,這樣省得以後去記密碼,而且也比較安全,所以新增第三方登入還是

    PHP QQ 登入介面應用

    QQ 登入申請網址:  http://connect.qq.com/manage/info?id=1 <?php   class qzone  {  var$appid = "***********";//換成您的var$appkey = "**********"