使用Facebook的SDK判斷來訪者是否已經按讃并成為本站粉絲團的成員_PHP教程
今天公司裡要做活動,其中有一項活動內容是要求來訪者按一下facebook粉絲團的讃,按了讃之後贈送現金.Facebook被墻大家眾所周知,在百度搜了一下發現因為被墻的原因導致國內涉及到Facebook開發的極少.
Facebook的API說簡單確實很簡單,只需要用iframe放html代碼就行了,但是這次因為涉及到了現金,我不想用curl抓取源碼模糊判斷,那樣很不准確,加上國內極少有關於Facebook的內容,就算是有也主要是新聞一類的,偶爾有幾篇技術文章也是幾年前老掉牙的玩意,現在拿過代碼來根本就不能用,迫於無奈只好啃了一晚上的英文版API手冊,說到手冊順便提一下我們看手冊的時候最容易找到的就是https://developers.facebook.com/docs/reference/php,這個說明中提供了很多內置的方法讓我們直接調用需要的內容,但是因為是facebook預設的因此提供的方法無法滿足很特殊的需求(就像今天我要實現的功能就非常特殊),最終我找到了https://developers.facebook.com/docs/reference/fql/,這裡主要講述facebook的FQL(這玩意很強大,只要你能想到的功能幾乎都能實現,本例就是得益于使用FQL才得以解決)
在丟代碼之前我首先簡單的提一下,要想開發facebook的程序就必須要申請到他的appid和secret,申請方法很簡單從https://developers.facebook.com/apps/?action=create申請就行了,礙於篇幅不再贅述(如果感覺有難度的話可以進我的QQ群223494678討論).有了這兩個玩意之後你還需要下載facebook的SDK才行,下載地址是https://github.com/facebook/facebook-php-sdk,下載之後解壓縮,只拿出src文件夾來就足夠用了,別的都可以刪掉,下邊是代碼,我有逐行加入註釋
<?<span PHP </span><span //</span><span 調用函數把結果賦值給變數</span> <span $a</span>=is_Like('213202422194942'<span ); </span><span if</span>(<span $a</span>[0]===<span TRUE</span><span ) { </span><span echo</span> '已經按讃'<span ; }</span><span else</span><span { </span><span echo</span> <span $a</span>[1<span ]; } </span><span unset</span>(<span $a</span>); <span //</span><span 釋放變數</span> <span die</span><span (); </span><span /*</span><span * 判斷用戶是否已經按讃(粉絲團) 參數: $pid:int型,粉絲團的id,這個值可以用firebug抓得到,如果不會可以進我的QQ群223494678討論 返回: array( 0=>bool型,[已經按讃則TRUE;反之FALSE] 1=>str型,當[0]=FALSE時的提示內容 ) 用法: $a=is_Like('213202422194942'); if($a[0]===TRUE) { echo '已經按讃'; }else{ echo $a[1]; } /*</span><span */</span> <span function</span> is_Like(<span $pid</span><span ){ </span><span if</span>(<span trim</span>(<span $pid</span>)=='') {<span return</span> <span array</span>(<span FALSE</span>,'粉絲團的ID不可為空!'<span );} </span><span //</span><span 調用SDK</span> <span require</span>('src/facebook.php'<span ); </span><span //</span><span 實例化對象</span> <span $FB</span>=<span new</span> Facebook(<span array</span><span ( </span>'appId' => '填寫你申請到的內容', 'secret' => '填寫你申請到的內容', 'cookie' => <span true</span>,<span )); </span><span //</span><span 如果對象建立失敗</span> <span if</span>(!<span is_object</span>(<span $FB</span><span )) { </span><span unset</span>(<span $FB</span><span ); </span><span return</span> <span array</span>(<span FALSE</span>,'加載Facebook的API失敗!'<span ); } </span><span //</span><span 提取當前來訪者id</span> <span $uid</span> = <span $FB</span>-><span getUser(); </span><span if</span>(!<span $uid</span>) { <span //</span><span 如果id提取失敗,則要求用戶登錄</span> <span $r</span>=<span array</span>(<span FALSE</span>,'<a href="'.<span $FB</span>->getLoginUrl(<span array</span>('scope'=>'publish_stream')).'">點擊登入</a>'<span ); }</span><span else</span>{ <span //</span><span 如果id提取成功 //用FQL查詢該用戶在page_fan表內是否有關注id=213202422194942的粉絲頁</span> <span $fql</span>=<span $FB</span>->api(<span array</span>('method' => 'fql.query','query' => 'SELECT page_id from page_fan where page_id="'.<span $pid</span>.'" and uid='.<span $uid</span>.''<span )); </span><span if</span>(<span is_array</span>(<span $fql</span>) and <span isset</span>(<span $fql</span>[0]['page_id']) and <span trim</span>(<span $fql</span>[0]['page_id'])!=''<span ) { </span><span $r</span>=<span array</span>(<span TRUE</span>,''<span ); }</span><span else</span><span { </span><span $r</span>=<span array</span>(<span FALSE</span>,'尚未按讃!'<span ); } } </span><span //</span><span 釋放變數</span> <span unset</span>(<span $pid</span>,<span $fql</span>,<span $uid</span>,<span $FB</span><span ); </span><span return</span> <span $r</span><span ; }</span>
希望此文能起到拋磚引玉的作用

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Vue.js與ASP.NET的結合,實現Web應用的效能最佳化和擴展的技巧和建議隨著Web應用的快速發展,效能最佳化成為開發者不可或缺的重要任務。 Vue.js作為一個流行的前端框架,與ASP.NET的結合可以幫助我們實現更好的效能最佳化和擴充。本文將會介紹一些技巧和建議,並提供一些程式碼範例。一、減少HTTP請求HTTP請求的數量直接影響Web應用程式的載入速度。透過

譯者|陳峻審校|重樓上世紀90年代,當人們提起軟體程式設計時,通常意味著選擇一個編輯器,將程式碼檢入CVS或SVN程式碼庫,然後將程式碼編譯成可執行檔。與之對應的Eclipse和VisualStudio等整合開發環境(IDE)可以將程式設計、開發、文件、建置、測試、部署等步驟納入到一個完整的軟體開發生命週期(SDLC)中,從而提高了開發人員的工作效率。近年來,流行的雲端運算和DevSecOps自動化工具提升了開發者的綜合能力,使得更多的企業能夠更輕鬆地開發、部署和維護軟體應用。如今,生成式AI作為下一代開

如何在ASP.NET程式中正確使用和最佳化MySQL連線池?引言:MySQL是一種廣泛使用的資料庫管理系統,它具有高效能、可靠性和易用性的特性。在ASP.NET開發中,使用MySQL資料庫進行資料儲存是常見的需求。為了提高資料庫連接的效率和效能,我們需要正確地使用和最佳化MySQL連接池。本文將介紹在ASP.NET程式中如何正確使用和最佳化MySQL連接池的方法。

如何在ASP.NET程式中重連MySQL連線?在ASP.NET開發中,使用MySQL資料庫是非常常見的。然而,由於網路或資料庫伺服器的原因,有時會導致資料庫連線中斷或逾時。在這種情況下,為了確保程式的穩定性和可靠性,我們需要在連線中斷後重新建立連線。本文將介紹如何在ASP.NET程式中實作重連MySQL連線的方法。引用必要的命名空間首先,在程式碼檔案的頭部引用

Vue.js與ASP.NET的結合,實現企業級應用的開發和部署在當今快速發展的互聯網技術領域,企業級應用的開發和部署變得越來越重要。 Vue.js和ASP.NET是兩個在前端和後端開發中廣泛使用的技術,將它們結合起來可以為企業級應用的開發和部署帶來許多優勢。本文將透過程式碼範例介紹如何使用Vue.js和ASP.NET進行企業級應用的開發和部署。首先,我們需要安裝

如何在ASP.NET程式中正確設定和使用MySQL連線池?隨著互聯網的發展和資料量的增加,對資料庫的存取和連接需求也不斷增加。為了提高資料庫的效能和穩定性,連接池成為了一個必備的技術。本文主要介紹如何在ASP.NET程式中正確配置和使用MySQL連接池,以提高資料庫的效率和回應速度。一、連接池的概念和作用連接池是一種重複使用資料庫連接的技術,在程式初始

如何在ASP.NET程式中正確使用並最佳化MySQL連線池的事務效能?在ASP.NET程式中,資料庫事務是非常重要的一環。事務可以確保資料庫的一致性和完整性,同時也可以提供更好的效能。而在使用MySQL資料庫時,利用連線池來管理連線資源和最佳化效能是不可或缺的。首先,讓我們簡單了解一下MySQL連接池的概念。連接池是一組連接的緩衝池,透過預先初始化一定數量的數

使用VisualStudio在Linux上進行ASP.NET開發的建議配置概述:隨著開源軟體的發展和Linux作業系統的普及,越來越多的開發者開始在Linux上進行ASP.NET開發。而作為一款功能強大的開發工具,VisualStudio在Windows平台上一直佔有主導地位。本文將介紹如何在Linux上設定VisualStudio來進行ASP.NE
