我有一個開發站點和生產站點在共享服務器上運行。我用fb_loginUrl和下面的代碼工作。
我正在將生產站點移動到新的域,也在共享服務器上。我複製了包括PHP SDK在內的整個代碼。我已經使用了新域名的appID和密碼。在新域中,如果需要,fb_loginUrl顯示登錄對話框,正確調用FB並接收GET回調。但即使有用戶登錄到機器上,用戶始終爲0。沒有CSRF錯誤。如果我繼續繞着無限循環,它會在第二次拋出一個CSRF錯誤,並在此之後每秒拋出一次。
問題應該在新應用程序設置的某個地方,但它們與名稱和地址更新的舊的應用程序相同,並且我嘗試了可以考慮的更改,包括在返回網址。我開始懷疑FB是否將一些不可見的默認值應用於新註冊的應用程序(並非完全偏執 - Web儀表板上的默認設置不同,例如「deprecate offline_access」的值 - 但我已將所有內容與我的舊設置)。
爲什麼它可能在不同的域中以不同的方式運行?
require_once '../facebook/facebook.php';
if(!isset($facebook)) $facebook = new Facebook(array(
'appId' => $facebook_appid,
'secret' => $fb_secret,
'scope' => 'email'
));
$fb_user = $facebook->getUser();
echo ' USER: ' . $fb_user;
if ($fb_user) {
try {
$fb_user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
}
}
在您移動網站之後您是否可以使用與之前網址相同的網址訪問新網站? – alexl 2012-02-12 02:46:40
沒有,不同的網址和不同的FB應用程序ID。你給了我一個主意。我嘗試在新的域名上使用舊的FB應用程序,它的工作原理!所以這給了我一個解決方法。但我仍然不知道爲什麼會發生這種情況,因爲舊應用程序現在具有與新應用程序完全相同的設置。 – malcanso 2012-02-12 05:49:12
在每個瀏覽器中都有這個問題嗎? – yacon 2013-01-28 14:38:55