2011-07-24 23 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 ,那么用户没有连接。