我正在開發一個Facebook應用程序。我正在使用Sessions和cookies,並且一切正常。突然IE8在使用Cookie方面存在一些錯誤。它阻止了我的網站,因爲它在iframe中。所以我開始瞭解P3P標題。我正確使用並解決了問題。但是,如果cookie不可用,客戶端現在希望我使用GET。我正在這樣做,但現在我面臨的問題是,Facebook PHP Sdk在會話中遇到問題。它的getSession方法沒有獲取會話並重定向來驗證用戶,然後重定向迴應用程序。但是在這一切中,它都會丟失GET變量PHPSESSID。以下是有一些東西類似的stackoverflow的線程,所以可能是你們以下是有幫助的。 Facebook PHP SDK getSession() fails to get session. Cookie problem?PHP會話與GET有問題的IE8和Facebook應用程序
這是曾經有GET會話如果Cookie不可代碼:
ini_set('session.use_cookies_only', false);
ini_set('session.use_trans_sid', true);
session_start();
這是訪問FB的代碼。與PHP Sdk會議。:
$facebook = new Facebook(array(
'appId' => FACEBOOK_APPID,
'secret' => FACEBOOK_SECRET,
'cookie' => true,
));
$this->facebook=$facebook;
// We may or may not have this data based on a $_GET or $_COOKIE based session.
// If we get a session here, it means we found a correctly signed session using
// the Application Secret only Facebook and the Application know. We dont know
// if it is still valid until we make an API call using the session. A session
// can become invalid if it has already expired (should not be getting the
// session back in this case) or if the user logged out of Facebook.
$this->session = $facebook->getSession();
請告訴你是否可以給我任何線索。
感謝大家
實際上,如果我使用Cookie進行會話,它可以正常使用Facebook應用程序,而當我使用GET而不是Cookie來使用會話時,這是問題,這是因爲客戶端需要該應用程序。如果IE瀏覽器在某些未知的情況下不接受cookies,則可以使用。 Howevera非常感謝你的幫助,如果我找不到更好的解決方案,我會考慮這種方式,因爲我認爲我也可以第一次接觸到我的會話,因爲它是第一次接受fb。 Cookie和基於GET的會話問題從第二次開始。 – Hafiz
你是對的,在你的地方,在這個背景下,而我的問題實際上是Kohana會議的問題,因爲我已經想通了。請同時嘗試在那裏幫助我,我也在stackoverflow上提出了這個問題,並邀請你在你的linkedin上解決這個問題。並感謝在這個問題上的幫助。 – Hafiz