目標
mobile/web 端,透過 fb 進階 oauth 的方式,mobile/web 的 登入/註冊 當然 web 可以透過簡易的方式,透過 javascript 取得授權的 token,但此方法不在這邊討論
建立 fb app
前期準備
- 你的 server,可架設簡易的 server,並做出一個 api 接口,在 browser 上印出以下參數(測試方法 : 在 browser 上填入 api 即可)
- Headers
- Method
- Rawbody
- Scheme
- URI
- Fragment :
"<script>document.write(window.location.hash);</script>";
,只有透過 js 才能取得此參數
- URL 組成 : scheme://host:port/path?query#fragment
- 首先登入
https://developers.facebook.com/
- 建立一個新的 fb app
- 在左側 sidebar 中,選擇 新增產品 -> Facebook 登入 -> 設定,這樣就完成了新增
- 在左側中,商品下會看到 『Facebook 登入』選擇設定
- 在步驟四後的右側,關閉『對重新導向 URI 使用 Strict 模式』(原因在於此方法並沒有使用任何 SDK)
- 在步驟四後的右側,『有效的 OAuth 重新導向 URI』中設定 網站的 Host,ex:
http://localhost
,注意,若你要轉址到 localhost,也是要設定 http://localhost- 為何要設定此方法,主要在於使用的方式會需要透過 facebook redirect 到你的伺服器,進行 註冊/登入,等行為,所以必須要驗證。
OAuth coding 部分
前期準備
- 在剛剛建立好的主控版取得以下參數
- 應用程式編號
- 應用程式密鑰
- API 版本
- 正式開始取得授權 token :
https://jhaoheng.github.io/blogpost/facebook/app/mobile/web/facebook-%E9%80%B2%E9%9A%8E-%E7%99%BB%E5%85%A5/
- mobile / web 端,呼叫 fb oauth(其中包含 redirect_uri)
- 透過 redirect_uri 轉到『你的 server』,這邊因 (1) 中的
response_type
設定方式,而有所不同 - 驗證 oauth_token
- 判斷『登入』、『註冊』,若無需用到 oauth_token 則,無須理會
透過 OAuth 使用 facebook graph-api
更多請參考 facebook graph api 可使用
https://developers.facebook.com/tools/explorer/
- me
- url :
https://graph.facebook.com/{fb_api_version}/me?access_token={oauth_token}&fields={fields}
- {fb_api_version} : 請注意你的 fb_app 版本
- {oauth_token} :
- {fields} :
email,name,id,picture.width(320).height(320)
- url :
授權的用戶如何手動刪除 fb_app
- 登入你的 facebook -> 設定
- 左側選擇『應用程式』-> 搜尋
- 彈出的視窗可看到 『移除應用程式』