2011-05-06 25 views
0

繼承人我的問題。

index.php文件 代碼:

<?php 

    require_once ('../src/facebook.php'); 
    $facebook = new Facebook(array(
    'appId' => 'xxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxx', 
    'cookie' => true, 
    )); 
     $session = $facebook->getSession(); 
     print_r($session); 
     ?> 

它工作正常,我有所有的$會話信息。

但是,只要我呼籲index.php?param = x,我沒有了我的會話信息。

怎麼回事?

+0

是否有任何具體的參數導致這種行爲,或者它是否爲你發送的每個參數? – 2011-05-06 23:33:36

+0

它適用於每個參數 – Clement 2011-05-06 23:51:42

+0

你在哪裏開發? Facebook連接網站? iframe畫布?或iframe頁面選項卡? – dragonjet 2011-05-07 02:03:17

回答

1

我看了看裏面facebook.php,當你使用的OAuth使用signed_request 2.0,這是它得到了會議的第一來源。

如果在高級設置中啓用了signed_request,則使用POST對於畫布傳遞給您。

當您使用GET方法(如index.php?param = x)導航到其他頁面時,將丟失signed_request。

我們之前有過這個問題,並且選擇在我們的iframe中使用AJAX來保留index.php中的signed_request,並且ajax加載的頁面將生成基於cookie的會話,因爲它們沒有signed_request。

如果需要,還可以在高級設置中禁用OAuth 2.0

+0

謝謝你的回答。如果我禁用了OAuth 2.0,我只會失去&session的參數。所以唯一的方法是使用AJAX並保持在同一頁面而不重定向?有什麼更簡單的嗎?事實上,我不想部署整個AJAX圖書館。 – Clement 2011-05-07 09:27:13

+0

那麼你可能想將signed_request存儲在會話變量中。在下一頁是?param = x重新獲取它。 – dragonjet 2011-05-07 10:23:58

+0

是的,它剛完成的工作。工作正常。非常感謝 – Clement 2011-05-07 10:56:03