0

我正在用 AMFPHP 开发一个 Facebook APP。我让 AMFPHP 和 Facebook SDK 工作,我的问题是,当我通过 AMFPHP 网关调用服务以访问将连接到 FB 并返回 UID 的服务时,例如,我得到一个空值。我的猜测是我做错了将 AMFPHP 服务连接到 FB 平台。

这是 gateway.php

<?php

define("PRODUCTION_SERVER", false);

include "libraries/amfphp/globals.php";
include "libraries/amfphp/core/amf/app/Gateway.php";

$gateway = new Gateway();

$gateway->setClassPath("./services");
$gateway->setClassMappingsPath("./services/vo");

$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
$gateway->setErrorHandling(E_ALL ^ E_NOTICE);

if(PRODUCTION_SERVER)
{
    $gateway->disableDebug();
    $gateway->disableStandalonePlayer();
}

$gateway->enableGzipCompression(25*1024);
$gateway->service();

?>

这是测试服务:

<?php

require_once("../libraries/facebook.php");

class Test
{
    public function uid()
    {
        $facebook = new Facebook(array(
          'appId'  => 'XXXXXXXXXXXX',
          'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXX',
          'cookie' => false,
        ));

        $session = $facebook->getSession();
        return $facebook->getUser();
    }
}

任何人都知道我可能做错了什么?

PS:我跳过了服务类中的登录和权限验证,假设用户已经登录并拥有必要的权限。

4

1 回答 1

0

您似乎想检索调用 AMF 服务的用户的用户信息,但问题是当您使用您的 appId 和 appSecret 实例化 Facebook SDK 类时,没有用户登录,您只是有您的应用程序连接到 Facebook。如果要在应用程序中维护 Facebook 用户会话,则必须在 Web 应用程序中实现 Facebook 连接,这将使您能够检索 Facebook 会话,然后您可以使用该会话代表用户向 Facebook 发出请求. 你可以在这里阅读更多关于它的信息。

于 2011-03-23T19:01:20.283 回答