[PHP] 如何使用 Facebook 帳戶實作用戶登錄和註冊自己的網站 [Graph API]
Graph API 是 Facebook 所推出的一種技術標準,它的核心概念是: 「物件與連結」。為什麼稱為「Graph API」呢? Facebbook將整個社群抽象為物件與物件之間連結的圖。☞ Graph API是什麼東東?現在用戶並不感興趣填寫個人基本資料去註冊一個網站。簡短地註冊可以幫您的網站獲得更多的用戶。Facebook是目前最熱門的社群網絡,大多數的人都擁有Facebook帳戶。因此使用Facebook帳戶,是整合註冊及登入您的網站,一個快速且有效的方法。Facebook登錄允許用戶使用他們的Facebook帳戶憑證登錄您的網站,而無需在您的網站上註冊。
# 應用程式設定
1. 註冊為 Facebook 開發人員
2. 建立新的應用程式 APP ID、取得 APP Secret
如果要使用Facebook做為會員帳號認證機制,那必需先到Facebook Developers 成立一個應用程式,並且拿到兩組不同的 key,分別是 APP_ID 和 APP_SECRET_KEY。☞ Facebook Developer 開發者中心
3. 網站與 Facebook 應用程式建立連結
當應用程式連結出現以下錯誤,表示上述的網域與子網域設定有誤
4. 用戶端 OAuth 設定
當應用程式連結出現以下錯誤,表示上述的用戶端 OAuth 設定有誤
☞ FACEBOOK 登入串接
.用戶端 OAuth 登入啟用標準 OAuth 用戶端權杖流程。
.透過以上選項來鎖定允許哪些權杖重新導向 URI,可保護應用程式安全並防止濫用。
.如果不使用,則可以全域停用。
.網路 OAuth 登入針對建立自訂登入流程啟用網頁型 OAuth 用戶端登入。
.嵌入的瀏覽器 OAuth 登入啟用 OAuth 用戶端登入的瀏覽器控制重新導向 URI。
.強制網路 OAuth 重新驗證開啟時,會提醒用戶輸入 Facebook 密碼才能登入網頁。
5. 公開發佈應用程式
當應用程式連結出現以下錯誤,表示你尚未將應用程式設定為公開
# 程式實作
6. https://www.facebook.com/dialog/oauth:透過 login dialog 經過用戶授權取得 access token
☞ 10分鐘理解OAuth和facebook登入原理
☞ How to make website registration easier using facebook accounts
facebook 並沒有提供 OpenID 服務,只提供 OAuth,因此雖然 OAuth 的用途不是身份認證,但我們可以利用 OAuth 的特性來登入使用者。你的網站必須把使用者重新導向回 facebook,讓使用者告訴 facebook 可以授權給你。
如果授權成功,facebook 會向你給的 redirect_uri 傳一串code給你,這個code就是使用者授權給你家網站的證據。
http://www.facebook.com/dialog/oauth? client_id=你的app id& redirect_uri=你的導向網址& scope=要求權限& response_type=FB回應的方式
7. https://graph.facebook.com/oauth/access_token:取得 access_token
為確定這個code真的是facebook傳回給你的,你必須要拿這個code向facebook換access_token。https://graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID& redirect_uri=YOUR_APP_REDIRECT_URL& client_secret=YOUR_APP_SECRET& code=CODE_PARAMETER
8. https://graph.facebook.com/me:取得登入的使用者資料
1) 拿這個access_token去問facebook這個人是誰,facebook就會告訴你,因此你就把該名使用者資訊寫到database註冊這名使用者。2) 之後該名使用者如果再度來到你的網站,你一樣可以問facebook該名使用者是誰,然後檢查是否資料庫已經存在該名使用者的資料,如果是的話,就可以把該名使用者登入進去你的網站。
9. Facebook 中如何取消應用程式的存取授權
隱私設定> 應用程式> 移除〔範例下載〕
- Facebook PHP SDK
- Facebook Graph API
- store the user profile data into the MySQL database
☞ (不連結DB) Login With Facebook Using API In PHP [Download source code]
☞ (不連結DB) Login With Facebook Using access_token In PHP
☞ (不連結DB) Login With Facebook Using access_token In PHP (精簡版)
Source
☞ Facebook API Sample☞ Facebook api - 手動建立登入流程
☞ 網站利用 Facebook 帳號登入 (使用 OAuth)
☞ 東之宿_開發日誌-7(Facebook 登入)
☞ 如何在自己的網站使用facebook登入系統
☞ [教學] FACEBOOK APP ID 申請,建立應用程式取得 APP 密鑰 ★
☞ [教學]如何申請建立 Facebook APP ID 應用程式ID ?
☞ Login with facebook using PHP ( Demo and Download )
沒有留言: