現在有很多網站使用 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); // 儲存大頭照
}
沒有留言:
張貼留言