2012年1月30日 星期一

新版 PHP SDK 認證語法~(適用第 3-7章)

本書記載的認證方式已經有點過時了~建議大家可下載新版的SDK。

主要是取消了過去要透過SESSION 取得使用者資料,
而改為直接取得使用資料。

語法改變如下


require 'facebook.php';

//建立FACEBOOK SDK 物件
$facebook = new Facebook(array( 
'appId'  => '1111111',// 應用程式ID
'secret' => '1111111', // 應用程式密鑰
'cookie' => true,
));

//嘗試取得使用者ID
$uid = $facebook->getUser();

//設定跳回的應用程式網址
$redirectUrl = 'http://apps.facebook.com/helloworld_tw/ch7_d/';

//設定跳回的應用程式網址
$loginUrl = $facebook->getLoginUrl(
array('scope' => 'publish_stream',//新版的授權參數
'redirect_uri'=>$redirectUrl,//回傳網址
'canvas' => 1, 'fbconnect' => 0
));

//檢查是否存在使用者ID
if($uid) {
//有使用者ID,嘗試取得個人資料
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {

error_log($e);
$uid = null;
$me = null;
}
}else{
//沒有使用者ID,導引到登入頁面
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}

//已取得使用者資料,利用GRAPH API 存取使用者對應用程式的授權,
$permissions = $facebook->api("/me/permissions");

//檢查授權清單,以避免使用者缺乏蹶別授權項目
if(!array_key_exists('publish_stream', $permissions['data'][0]) ) {
//缺乏蹶別授權項目,,導引到登入頁面
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}


2011年11月10日 星期四

Facebook 強制 HTTPS 建議解法

11月初開始,
Facebook平台上的應用程式全面實施安全網頁連線(HTTPS),一方面加強了用戶使用FB各功能的安全性,進一步保障大家的隱私,但另一方面相信也造成了開發人員壓力。本文整理了一些資料提供參考。

現在應用程式編輯中增加了

Secure Canvas URL:安全連線下你的應用程式連接黠


11月以前不設定是沒有問題的,後來因為有了一些強制性,使用者如果在帳號隱私中打開了加密瀏覽(有時候不一定是使用者打開,會預設)


如果應用程式剛好沒有HTTPS連線的應用程式,就會跳出一個安全警告,註定跟使用者無緣了。
這一度也讓我很頭痛,後來有整理一些解決辦法,在不同場合應用,分兩大方向:


將應用程式移到Facebook平台以外
乾脆就跟FB平台分手,應用程式掛在網站,主要利用Graph API作結合。
優點:不再受限於Facebook,更自由,介面尺寸以及內容都不會受到限制。

缺點:串接及認證過程比較麻煩,同時缺乏了整合進Facebook的外觀,使用者沒有一致的用戶體貼。


‧增加主機的HTTPS連線(需要會設定主機,不需合初學者)
為主機增加https連線協定就可以解決使用者無法進入的問題了,同時也不需太改動太多程式。

HTTPS是指連線將透過加密方式進行,第三者無法輕易監看到傳輸內容。過去主要是用於金流交易,登入等需要高安全性的範疇。

SSL證書一張從幾千(一年)到幾萬(一年)都有,視乎其保障的額度以及安全性。

在FB上應用程式如果是商用需求是應該要擁有才比較保障使用者,但假如應用程式是在低成本下運作,購買SSL 證書成本就太高了。

後來我有發現坊間有一些平實的SSL證書很適合用來解決FB這個問題。

>FreeSSL (0元)
網址 : http://www.freessl.com/
介紹 : 這個網站有提供免費一年的SSL證書服務,過了一年~也只需要繳很低的費用。
設定 : 網上可以找到相關教學,但我一直設定失敗,可能是我本身對這方面設定不熟悉。

>Godaddy(美金$12.99/年) * 推薦
網址 : http://www.godaddy.com/Compare/gdcompare_ssl.aspx?isc=sslqasia1
介紹 : 老字號申請網址的公司,同時有推出低價的SSL服務
設定 : 網上可以找到相關教學,安裝相對簡單,主要是證書下載了再由主機設定即可。

不過終歸一句,如果有渉及更安全的考慮,應該要使用標準128以上加密的安全證書,以上的方式主要是可以先解決開發初期的問題。