這篇我來說明他的程式跟原理。
在使用者看起來很簡單,就是透過你提供的網址,按下去之後登入,就完成。但是其實應用程式主機可能就要做好幾個動作。
在所有動作前,你要先確定你的應用程式 ID / API 鑰匙(App ID)跟應用程式密鑰(App Secret)。可以參考http://expect7.pixnet.net/blog/post/45803234 文章中,如何取得。
首先是使用者透過你提供的網址進行登入。
程式的部分,比較重要的是,要讓使用者點選的網址跟參數(用GET帶過去):
網址:https://www.facebook.com/dialog/oauth
參數:client_id 對應的值是 App id
redirect_uri 對應的值是 Facebook回應的網址要指向哪裡。
<?php //這是你在FB上面的應用程式ID ?> <a href="https://www.facebook.com/dialog/oauth?client_id=<?php echo $app_id ?>&redirect_uri=<?php echo $return_url ?>">Facebook</a> |
這是使用者會看到的畫面。
當你點選後,如果你還沒登入Facebook,則會導到登入的頁面。要求你登入。
登入之後,就會跳一個畫面,要你允許前往應用程式。當使用者點選之後,接下來就是伺服器要做的事情了。
接來的動作就是要取得憑證。
當使用這登入後,並且點選前往應用程式。將會依照你設定的redirect_uri回傳資訊。回傳的資訊會用GET的方式回傳一個code的變數。那就是要抓取這個coed變數來運算。
取得code的值之後,就要參照另一個網址,把組合的資訊丟過去,以獲取憑證
網址:https://graph.facebook.com/oauth/access_token
參數:client_id 對應的值是 App id
client_secret 對應的值是App Secret
redirect_uri 對應的值是 Facebook回應的網址要指向哪裡。
code 對應的值,就是上一個步驟運算回傳的值。
這邊可以用CURL背景運算的方式取得或是直接用PHP的file_get_contents方式取得。
<?php //這是你在FB上面的應用程式ID ?> <a href="https://www.facebook.com/dialog/oauth?client_id=<?php echo $app_id ?>&redirect_uri=<?php echo $return_url ?>">Facebook</a> |
最後一個步驟,完成就可以取得使用者的基本資訊了。
取得憑證之後,就可以透過下方網址跟facebook取得user基本資訊。
網址:https://graph.facebook.com/me
參數:就直接把上一個步驟截取的資訊串在後面就可以了。
比較重要的是FACEBOOK最後回傳的資訊是JSON格式,所以還是要透過函數處理過才能顯示。
<?php //這是你在FB上面的應用程式ID ?> <a href="https://www.facebook.com/dialog/oauth?client_id=<?php echo $app_id ?>&redirect_uri=<?php echo $return_url ?>">Facebook</a> |
這樣就算幾大功告成了,當你取得USER基本資料後,你再決定看看要顯是什麼給USER看吧!