我在移动设备上遇到Facebook SDK的问题,我希望这里有人可以帮我解决问题。
我让js sdk做了FB.getLoginStatus,如果是response.status == 'connected'
则打开一个弹出式iframe。弹出式iframe使用PHP sdk执行$facebook->getUser()
,即使在重定向到$facebook->getLoginUrl()
之后,每次都返回0。令人惊讶的是,当重定向到PHP $loginUrl
时,没有登录对话框,它只返回提供的redirect_uri,但$facebook->getUser()
仍为0,当我尝试{{1并且捕获异常,它说必须使用活动访问令牌来查询有关当前用户的信息。
我尝试了$facebook->api('/me')
,但仍无效。我还尝试将JS SDK $facebook->getAccessToken()
发布回PHP并将其放入response.authResponse.accessToken
,但这也无效。这到底是怎么回事?我在桌面浏览器上没有这样的问题,只能在移动设备上使用..
为了澄清,这是我用来测试的脚本:
$facebook->setAccessToken()
但是,在针对iPhone的Facebook应用程序上进行测试时,用户ID为0,单击<?php
require_once(__DIR__ . '/../facebook-sdk-3.2.2/facebook.php');
$facebook = new Facebook(array(
'appId' => '[private]',
'secret' => '[private]',
'cookie' => true
));
$redirectUri = 'https://www.[private].com/ios-test.php';
$loginUrl = $facebook->getLoginURL(array(
'scope' => 'publish_stream,publish_actions,email',
'redirect_uri' => $redirectUri
));
echo '<a href="'.$loginUrl.'" target="_top">'.$loginUrl.'</a><br />';
var_dump($facebook->getUser());
exit(__FILE__.__LINE__);
时,我没有看到auth对话框,但我被带回到用户ID仍然存在的同一页面在Android原生浏览器上也是如此。在iPhone上使用Chrome时,会显示正确的Facebook用户ID。
我真的需要这方面的帮助,我花了四个多小时撞到这堵墙并搜索互联网,没有任何东西有帮助。有人建议我尝试Stack Overflow,我希望他们是对的!
答案 0 :(得分:0)
我有完全相同的问题。通过在生成facebook auth url时指定直接网址而不是画布网址,我在所有移动浏览器上工作。但它似乎不适用于iPhone ......