【问题标题】:Facebook php SDK getUser returns 0 apart from my laptop and the app developer除了我的笔记本电脑和应用程序开发人员之外,Facebook php SDK getUser 返回 0
【发布时间】:2012-11-04 20:52:59
【问题描述】:

我已经查看了数百个与此类似的问题的答案,但找不到任何似乎有帮助的东西。

我正在运行最新版本的 PHP SDK 和登录 facebook 按钮,该按钮具有从 getLoginUrl() 生成的链接。

在我的开发笔记本电脑上运行并以应用程序开发人员身份登录它会将我传回重定向 url(调用 getLoginUrl() 时的回调 url 和我的应用程序设置中设置的 URL 完全相同)然后我做一个getUser 调用将在这些情况下起作用。

如果我在同一网络上使用我的 Iphone 尝试相同的过程,则在 facebook 上以同一用户身份登录 getUser() 返回 0。 对于尝试使用 facebook 登录的任何其他用户,它也一样。

沙盒模式已禁用。 我的应用程序域似乎设置正确。

我真的不确定下一步该做什么。

【问题讨论】:

  • 当您说“iphone”时,您的意思是通过浏览器(网站的移动网络版本)?还有什么代码可以分享给我们吗?
  • 我通过 safari 运行它,并且只使用点击。今晚我会提供一些示例代码 - 与示例代码相差不远,只是抽象了几个类。

标签: facebook-php-sdk


【解决方案1】:

非常感谢你们的回复 - 原来问题是我从一个页面发送请求并重定向回另一个页面。这似乎让 facebook 感到不安(我猜它只会重新指向它被调用的页面)。 无论如何,这解决了问题 - 但非常感谢您的回复。

【讨论】:

    【解决方案2】:

    首先确保您在脚本中维护会话:

    session_start();
    

    在您的 php 文件的顶部。

    接下来使用类似的东西来测试你是否有一个 fb 用户,如果没有,将他们重定向到 oauth,如果他们已经通过它的授权过期,它只会更新他们的令牌。

    require_once('facebook/fb.inc');
    

    session_start();

    if (!$fbUser) {
        $loginUrl = $facebook->getLoginUrl(
            array(
                'scope' => 'email,publish_stream,user_location',
                'redirect_uri' => 'http://scubadivinglog.org/php/fblink.php'
            )
        );
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
    

    希望这会有所帮助。让我们知道,如果没有发布您正在使用的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 2013-07-04
      • 2011-10-11
      相关资源
      最近更新 更多