2011-04-04 56 views
1

我試圖讓Facebook是應該通過使用此代碼提供的「fb_sig」參數:Facebook的「fb_sig」和「的OAuth 2.0畫布」

$parms=''; 
foreach ($_REQUEST as $name=>$val) 
{ 
    if (substr($name,0,6)!='fb_sig') continue; 
    if ($parms!='') $parms.='&'; 
    $parms.=$name.'='.$val; 
} 

我需要以發送這些參數給需要使用Facebook API(即得到一個朋友列表)的PHP代碼,到目前爲止它曾經工作正常。我從這裏得到了代碼: http://www.foobots.net/breakouts.html

但是,當我激活「Canvas 2.0的OAuth 2.0」以便能夠使用facebook credits api時,那麼「Parms」最終成爲空字符串。根本沒有「fb_sig」參數。當我解析signed_request時,它們也不在那裏。

是否可以使用「OAuth 2.0 for Canvas」並仍然可以訪問「fb_sig」參數?

回答

0

看一看

Facebook Canvas Auth

Facebook Signed Request

我不認爲在同一時間兩種方法將工作!希望有幫助

+0

謝謝!我會繼續尋找。我的應用程序在Flash中完成,它調用一個php文件來檢索用戶的朋友。由於該PHP做了require_login(),它也需要認證數據(cookie不可靠)。我曾經通過在url中發送「fb_sig」參數來解決這個問題,但現在我不再擁有它們了,除了發送簽名請求(或其包含的數據)之外,我不知道要發送什麼, – Cristian 2011-04-05 13:53:12

1

您的應用程序將被設置爲接收「fb_sig」參數或「signed_request」參數。 fb_sig參數是Facebook用來做的舊方式。 signed_request是新的方式。通過解碼signed_request參數,我相信你可以訪問包含在各個fb_sig_ *參數中的相同信息。

對於較舊的應用程序,您可以在高級應用程序設置中通過更改高級選項「畫布的signed_request」來在fb_sig_ *和signed_request之間切換。

新應用程序只能選擇signed_request,無法在應用程序設置中對其進行更改。

請注意,這是截至2011年9月,明年所有這一切可能已經改變..再次。