2018.2.8 php實現qq登陸接口

PHP實現QQ登錄的原理和實現過程
2018-02-08 學習與分享 PHP自學中心

第三方登錄,就是使用大家比較熟悉的比如QQ、微信、微博等第三方軟件登錄自己的網站,這可以免去注冊賬號、快速留住用戶的目的,免去了相對復雜的注冊流程。下邊就給大家講一下怎么使用PHP開發QQ登錄的功能。

1、進入QQ互聯官網進行登錄(可以使用自己的QQ或者重新注冊一個QQ號作為咱們項目的單獨QQ進行管理),地址:https://connect.qq.com/

2、點擊“應用管理”進入QQ互聯管理中心,在這里進行相關應用的創建,分為 網站應用 和 移動應用。選擇自己想要的應用進行資料的填寫(審核需要等待大概7天左右),審核通過你將獲得APP ID
和APP Key,請拿小本本記上!請拿小本本記上!請拿小本本記上!(重要的事情說三遍!!!)

3、審核通過獲得相關接口:get_user_info。

4、下載QQ互聯相關的demo http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD 我下載的是 PHP SDK v2.1
廣告
去逛逛

5、仔細觀察sdk我們會發現它包含有4個文件夾、2個文件,其中最主要的是API文件夾,其余的我覺得都可以忽略不看(你看也沒事),按照這篇文檔一步一步往下進行,你就可以實現登錄的功能。

6、將API文件夾拷貝到你的項目里,至于拷貝到項目的哪個文件夾,只要你能引入就行,看你心情來就可以,前期準備做好,接下來就是寫代碼了。

7、打開你拷貝到項目里的API文件夾,其中有一個comm文件夾,再次打開comm你就能看到一個叫 inc.php 的家伙,打開它!將上文記在你小本本上的APPID 和 APPKEY填寫到相關位置,大概形式是這樣的  
<?php die('forbidden'); ?>
{"appid":"你的appid","appkey":"你的appkey","callback":"你的網站回調域","scope":"get_user_info"}

8、代碼如下

<?php
/**

  • Created by PhpStorm.
  • User: qichun
  • Date: 2018/2/8
  • */
    namespace wechat\controllers;

use wechat\common\BaseController;

require(DIR . '/../tools/API/qqConnectAPI.php'); //引入QQ互聯SDK,這是按照我自己項目的路徑引入的。

class QqloginController extends BaseController{
//登錄方法
public function actionQqlogin(){
$qc = new \QC();
$qc->qq_login();
}
//這個方法是當你通過QQ登錄成功以后想要跳轉回來的地址,比如你想登錄成功以后跳轉到百度,那你把下文的$url改為百度鏈接即可!
public function actionCallback(){
header("Content-type: text/html; charset=utf-8");
    /*       這里請根據你的項目開發需求(比如獲取登錄用戶的昵稱、頭像、年齡等等),進行相關代碼的開發,具體數據獲取方法,請查閱QQ互聯文檔
$qc = new \QC();
$access_token = $qc->qq_callback();

$openid = $qc->get_openid();
*/
$url = "http://wechat.xxx.cn/index.php?r=cms/home";
header("Location:".$url);
exit();
}
}
至此呢你的整個流程就走完了,簡單吧!!!整個功能流程類似下圖:

如果你在開發過程中遇到如下問題:
file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
出現這個錯誤的原因很簡單,php配置中的加密模塊并沒有打開
解決方案:1.(windows)php.ini配置文件,定位到下圖藍色所示的位置,把extension=php_openssl.dll 前面的; 分號去掉
去掉以后重新啟動Apache或者nginx服務器,再訪問,就不會有這個錯誤了。

  1. linux下的PHP,就必須安裝openssl模塊,安裝好了以后

轉載于:https://www.cnblogs.com/qichunlin/p/8430070.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453499.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于積累的一點看法

這是vip那邊發表的一篇帖子&#xff0c;今天整理&#xff0c;發現可能有一點代表性&#xff0c;就再發在這里&#xff0c;供各位同學參考。 壇子里有人討論小公司要不要積累框架的問題&#xff0c;有感而發&#xff0c;寫了點自己的看法&#xff0c;一家之言&#xff0c;歡迎拍…

去除vue項目中的#及其ie9兼容性

一、如何去除vue項目中訪問地址的# vue2中在路由配置中添加mode&#xff08;vue-cli創建的項目在src/router/index.js&#xff09; 1 export default new Router({2 mode: history,3 routes: [4 {5 path: /,6 name: menu,7 component: menu,8 …

sendBroadcast與sendStickyBroadcast的區別

前提條件&#xff1a;此處我主要討論兩種廣播在代碼中動態注冊時的一些細節問題。 正常情況下&#xff0c;廣播通常都是執行一次注冊代碼&#xff0c;就會觸發各接收器接收一次&#xff0c;無論是在onCreate里注冊還是onResume里注冊&#xff1a;若在onCreate里注冊&#xff0…

java 線程池 初始大小_為什么tomcat的默認線程池大小如此之大? - java

我注意到默認的tomcat 7線程池大小似乎是200。但是普通的CPU似乎有16個內核。因此只能并行執行16個線程為什么tomcat使用那么多線程。參考方案多年以來&#xff0c;許多單核計算機問世&#xff0c;并且能夠以“偽并行”模式運行功能&#xff0c;也就是說&#xff0c;您可能有16…

Hadoop2.6.0完全分布式安裝

1、修改主機名稱 對master/slave1/slave2同時配置為Master/Slave1/Slave2 masterMaster:~$ sudo gedit /etc/hostname 上述3個虛機結點均需要進行以上步驟 2、填寫主機IP 對master/slave1/slave2同時配置 masterMaster:~$ sudo gedit /etc/hosts 192.168.48.128 master192.168.…

DEX加密效果分析

dex加密目的&#xff1a;保護安卓應用的Java源代碼&#xff0c;避免被惡意分析&#xff0c;技術被竊取準備工具&#xff1a;1、apktool &#xff1a;反編譯apk&#xff0c;提取smali代碼2、dex2jar &#xff1a;將dex轉化為jar文件3、jd-gui &#xff1a;查看jar文件&#xff0…

一些比特率值

比特率 比特率是指將數字聲音由模擬格式轉化成數字格式的采樣率&#xff0c;采樣率越高&#xff0c;還原后的音質就越好。 比特率值與現實音頻對照&#xff1a; 16KBPS電話音質 24KBPS增加電話音質、短波廣播、長波廣播、歐洲制式中波廣播40KBPS美國制式中波廣播56KBPS話…

java asynccontext,超時后的JavaEE 6 AsyncContext行為

What is the exact behavior of AsyncContext after it times out? Does it still run and does it return response using getResponse()?解決方案Java Servlet 3.0 Maintenance Release on page 34 reads:A call to this method - ServletRequest.startAsync(ServletReques…

BZOJ1857:[SCOI2010]傳送帶——題解

http://www.lydsy.com/JudgeOnline/problem.php?id1857 Description 在一個2維平面上有兩條傳送帶&#xff0c;每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段AB和線段CD。lxhgww在AB上的移動速度為P&#xff0c;在CD上的移動速度為Q&#xff0c;在平面上的移動速度R。…

mnt/sdcard和storage/sdcard的區別

/mnt 目錄&#xff0c;熟悉linux的人都清楚&#xff0c;linux默認掛載外部設備都會掛到這個目錄下面去&#xff0c;如將sd卡掛載上去后&#xff0c;會生成一個/mnt/sdcard 目錄。 storage/sdcard 目錄&#xff0c;這是一個軟鏈接&#xff08;相當于windows的文件夾的快捷方式&a…

kd樹的原理

kd樹就是一種對k維空間中的實例點進行存儲以便對其進行快速檢索的樹形數據結構&#xff0c;可以運用在k近鄰法中&#xff0c;實現快速k近鄰搜索。構造kd樹相當于不斷地用垂直于坐標軸的超平面將k維空間切分。 ?? 假設數據集\(T\)的大小是\(m*n\),即\(T{x_1,x_2,...x_m}\),其中…

應聘華為的朋友小心了,應聘華為的悲慘遭遇!

以下內容全部真實&#xff0c;為本人親身經歷。可隨時進行當面對質。 本人女朋友&#xff0c;原本是西安一家企業里面的行政助理&#xff0c;工作比較穩定&#xff0c;收入不高&#xff0c;但也基本夠她用了。 一天&#xff0c;我的一個同學&#xff08;華為員工&#xff09;說…

力軟 java主從表保存_JAVA常用知識總結(十二)——數據庫(二)

MySQL主從熱備份工作原理簡單的說&#xff1a;就是主服務器上執行過的sql語句會保存在binLog里面&#xff0c;別的從服務器把他同步過來&#xff0c;然后重復執行一遍&#xff0c;那么它們就能一直同步啦。整體上來說&#xff0c;復制有3個步驟&#xff1a;作為主服務器的Maste…

HttpClient和DefaultHttpClient

HttpClient 是接口&#xff0c;DefaultHttpClient是實現這個接口的子類 public interface HttpClient {/*** Obtains the parameters for this client.* These parameters will become defaults for all requests being* executed with this client, and for the parameters of…

Go語言版黑白棋

1、游戲說明2、無邊框窗口實現3、背景圖、最小化、關閉窗口4、界面其它設計5、黑白子提示閃爍效果6、落子7、初始化棋子、改變角色8、倒計時9、吃子10、棋子個數統計、勝負判斷11、機器落子 轉載于:https://www.cnblogs.com/tennysonsky/p/8442827.html

vue使用render渲染jsx

vue&jsx文檔 vue實例屬性 // App.ts import hBtn from ./components/hBtn import hUl from ./components/hUlexport default {data(){return {theme: "mdui-theme-pink",accent: "mdui-theme-accent-pink",users:[aoo, boo, coo]}},methods:{},render(…

java中的多線程有什么意義_Java多線程與并發面試題(小結)

1&#xff0c;什么是線程&#xff1f;線程是操作系統能夠進行運算調度的最小單位&#xff0c;它被包含在進程之中&#xff0c;是進程中的實際運作單位。程序員可以通過它進行多處理器編程&#xff0c;你可以使用多線程對運算密集型任務提速。比如&#xff0c;如果一個線程完成一…

IT必須掌握的常用命令

一&#xff0c;ping      它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說&#xff0c;ping命令是第一個必須掌握的DOS命令&#xff0c;它所利用的原理是這樣的&#xff1a;網絡上的機器都有唯一確定的IP地址&#xff0c;我們…

Callable類

&#xff08;一&#xff09; Callable和Runnable比較相似&#xff0c;都可以用來實現線程任務。但callable使用了泛型設計&#xff0c;使用一個V類型值&#xff0c;能夠 在執行結束后返回一個V類型的值。而Runable只會返回一個void&#xff0c;不能夠獲得執行的結果。 &#x…

Java——線程的創建,線程池

線程 多線程就是一個程序中有多個線程在同時執行。 多線程下CPU的工作原理 實際上&#xff0c;CPU(中央處理器)使用搶占式調度模式在多個線程間進行著高速的切換。對于CPU的一個核而言&#xff0c;某個時刻&#xff0c;只能執行一個線程&#xff0c;而CPU的在多個線程間切換速度…