1

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

4

1 回答 1

0

我有完全相同的问题。通过在生成 facebook auth url 时指定直接 url 而不是画布 url,我让它在所有移动浏览器上工作。但是在iphone上好像不行......

于 2013-06-19T10:46:19.573 回答