2012-09-18 23 views
0

我有一個Facebook應用程序,在沙盒模式,當前回合 我的應用程序將自動踢PPL出來的時候他們沒有應用或者他們還沒有登錄Fackbook應用手柄去AUTH

我的應用程序也安裝該應用程序有一個btn投票的東西,這將是一個ajax函數,當人們havnt安裝應用程序/ hasnt登錄時,ajax將返回消息,然後調用fb.login()要求用戶在彈出窗口登錄

i正在測試一個案例,假設我安裝了應用程序,

  1. 我去具有AJAX按鈕

  2. 然後我打開我的帳戶頁面其他瀏覽器選項卡上的頁面,然後刪除該應用

  3. 我換瀏覽器選項卡頁面

  4. 我點擊BTN,阿賈克斯回報沒有安裝消息,並調用它的FB.login()

  5. 它會彈出一個錯誤彈出,這是我檢查彈出的網址,這是分區包含的accessToken

  6. ,然後我再次點擊BTN,未安裝AJAX返回的消息,並調用它的FB.login()

  7. 它彈出登錄框通常

不同的是成功登入網址不會包含的accessToken在URL段

誰能告訴我如何處理這種情況下,如果我想RELI人一個彈出框登錄一次他們刪除該應用程序,還沒有刷新頁面

回答

0

一般,在你做任何Javascript之前,你可以通過調用Facebook服務器'getLoginStatus'來檢查他們是否仍然登錄。然後處理你的行爲,一旦這個電話響應。

您還可以使用位於HTML頁面中的event subscribe偵聽器。如果用戶註銷,那麼你可以強制刷新

FB.Event.subscribe('auth.authResponseChange', function(response) { 
    alert('The status of the session is: ' + response.status); 
}); 

如果回調到PHP然後每個PHP頁面應該啓動一個Facebook對象(檢查Facebook SDK),並檢查用戶登錄。

require 'facebook-php-sdk/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
)); 

// Get User ID 
$user = $facebook->getUser(); 
+0

Thx的評論,但我的情況是卸載應用程序,而不是註銷 – user192344

+0

所以是我的答案;) – Robbie