現在有很多網站使用 facebook 或 Google 的帳號登入,優缺各有,缺點是取得的資料較有限,也可能相對不真實,對方也可以透過設定限制抓取的內容,優點是速度快,可以增加會員加入的意願,在這邊紀錄一下自己使用 fb api 的經驗。
申請 fb app
這個流程網路隨便搜尋就一大堆,所以我這邊就不介紹了,所有的 api 要使用一定要拿到 App ID 以及 App Secret。
下載 sdk
PHP SDK,fb 另外提供許多語言 sdk,如 JavaScript, Android, iOS,直接去 deleopers 的頁面找尋下載即可。
登入頁面佈置
include 'fb/facebook.php'; // 將下載的 sdk 導入 // 初始 class 的設定 $facebook = new Facebook(array( 'appId' => FB_APP_ID, 'secret' => FB_APP_SECRET )); // 想要抓取的內容 $params = array( scope => 'email, user_birthday', redirect_uri => $chan->retUri('/fb-login.php') // 我自己設定的頁面名稱,fb 驗證完後會導回這頁 ); // fb 會幫你算出驗證登入的超連結,按下去以後變會導到驗證頁麵 $fbLoginUrl = $facebook->getLoginUrl($params);
其他的 scope 可以在 fb 參考文件 找到。
fb-login.php
include 'fb/facebook.php'; // 將下載的 sdk 導入 // 初始 class 的設定 $facebook = new Facebook(array( 'appId' => FB_APP_ID, 'secret' => FB_APP_SECRET )); $uid = $facebook->getUser(); // 開始抓取用戶資料 if ($uid) { $profile = $facebook->api('/me','GET'); $email = $profile['email']; // email $gender = $profile['gender']; // 性別 male / female $nickname = $profile['name']; // 名稱 $birthday = $profile['birthday']; // 生日 01/05/1980 // 抓取大頭照 $imgSrc = file_get_contents('https://graph.facebook.com/'.$uid.'/picture?type=large'); $imgName = $uid.'jpg'; $imgFile = 'profile/'.$imgName; file_put_contents($imgFile, $imgSrc); // 儲存大頭照 }
沒有留言:
張貼留言