2011-07-24 34 views
0

我正在嘗試爲我的Facebook應用設置離線訪問。 javascript部分就位,用戶通過身份驗證。然而,我無法爲我的生活似乎將驗證數據從JavaScript發送到PHP。將Facebook身份驗證從Javascript傳遞到PHP

基本上,我從javascript getSession方法獲取access_token,然後我用access_token=<URL_ENCODED_ACCESS_TOKEN>發出我的PHP請求,但是PHP SDK檢測到訪問令牌與應用程序訪問令牌和小雞匹配。

我不知道爲什麼我的訪問令牌是應用程序的,也許是因爲我是開發人員?

對於它的價值,這是行,其中對我的Facebook的SDK撈出:

$access_token = $this->getAccessToken(); 
if ($access_token && 
    $access_token != $this->getApplicationAccessToken() && 
    !($user && $persisted_access_token == $access_token)) { 
    $user = $this->getUserFromAccessToken(); 
    if ($user) { 
    $this->setPersistentData('user_id', $user); 
    } else { 
    $this->clearAllPersistentData(); 
    } 
} 

似乎無法突出一條線,這是這一行:

$access_token != $this->getApplicationAccessToken() && 

任何人都可以向我解釋我是如何將通過身份驗證的用戶從Javascript傳遞給PHP的?

此外,我假設由於用戶已授予離線訪問權限,我可以存儲此訪問令牌以備後用?

謝謝

+0

我正在使用AJAX,但我不明白這有什麼區別。無論哪種方式,PHP正在接收來自HTTP查詢的輸入,並在GET參數中使用訪問令牌。 – Naatan

回答

0

最終通過將訪問令牌作爲GET參數傳遞來解決,然後使用API​​調用接受手動提供訪問令牌。我無法弄清楚它會自動處理的方式。

0

那麼嘗試用餅乾,如JavaScript和PHP都可以讓你做到這一點,如果沒有,那麼AJAX是做出來,getAccessToken的最佳方式()函數基本上是獲取用戶的訪問令牌只如果用戶連接並且用戶沒有連接,那麼它會得到您的應用程序訪問令牌,echo getUser()並查看您得到的內容,如果獲取用戶的ID,則用戶連接到您的應用程序,並且如果您得到0 ,那麼用戶沒有連接。