【问题标题】:Having trouble with Facebook PHP SDK on mobile devices在移动设备上使用 Facebook PHP SDK 时遇到问题
【发布时间】: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,我希望他们是对的!

【问题讨论】:

  • 我看到有人投了反对票,但没有人介入帮助。什么样的人会访问这个论坛?

标签: login facebook-php-sdk


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多