在移动设备上遇到Facebook PHP SDK的问题

时间:2013-05-11 03:54:08

标签: login facebook-php-sdk

我在移动设备上遇到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,我希望他们是对的!

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。通过在生成facebook auth url时指定直接网址而不是画布网址,我在所有移动浏览器上工作。但它似乎不适用于iPhone ......