【发布时间】:2013-05-11 03:54:07
【问题描述】:
我在移动设备上使用 Facebook SDK 时遇到问题,我希望这里的人可以为我提供帮助。
我有 js sdk 做一个 FB.getLoginStatus 并且如果 response.status == 'connected' 然后打开一个弹出 iframe。弹出的iframe使用PHP sdk做$facebook->getUser(),每次都返回0,即使重定向到$facebook->getLoginUrl()。令人惊讶的是,当重定向到 PHP $loginUrl 时,没有登录对话框,它只是返回到提供的 redirect_uri,但 $facebook->getUser() 仍然为 0,当我尝试 $facebook->api('/me') 并捕获异常时,它说必须使用活动访问令牌来查询有关当前用户的信息。
我试过$facebook->getAccessToken(),还是不行。我还尝试将 JS SDK response.authResponse.accessToken 发布回 PHP 并将其放入 $facebook->setAccessToken(),这也不起作用。这到底是怎么回事?我在桌面浏览器上没有这样的问题,它只在移动设备上..
澄清一下,这是我用来测试的脚本:
<?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__);
但是,在 iPhone 的 Facebook 应用程序上进行测试时,用户 ID 为 0,当单击 $loginUrl 时,我没有看到身份验证对话框,但我被带回了用户 ID 仍然为 0 的同一页面。在 Android 本机浏览器上也会发生同样的情况。在 iPhone 上使用 Chrome 时,会显示正确的 Facebook 用户 ID。
我真的需要帮助,我已经花了四个多小时把头撞在墙上并在互联网上搜索,没有任何帮助。有人建议我试试 Stack Overflow,我希望他们是对的!
【问题讨论】:
-
我看到有人投了反对票,但没有人介入帮助。什么样的人会访问这个论坛?