我正在尝试为我的Facebook App设置离线访问权限。 javascript部分已到位,完全由用户进行身份验证。但是我无法为我的生活似乎将身份验证数据从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 :(得分:0)
尝试使用cookies,因为Javascript和php都允许你这样做,如果没有,那么AJAX是最好的方法,getAccessToken()函数基本上只有在用户连接时才获取用户的访问令牌,如果用户未连接,然后它获取您的应用程序访问令牌,echo getUser()并查看您获得的内容,如果您获得用户的ID,则用户连接到您的应用程序,如果您获得0,则用户未连接
答案 1 :(得分:0)
最终通过将访问令牌作为GET参数传递,然后使用接受手动提供访问令牌的API调用来解决。我无法找到自动处理此问题的方法。