我正在用AMFPHP开发一个Facebook应用程序。我让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:我跳过了服务类中的登录和权限验证,假设用户已经登录并具有必要的权限。
发布于 2011-03-24 03:01:20
您似乎希望检索调用AMF服务的用户的用户信息,但问题是,当您使用appId和appSecret实例化Facebook SDK类时,没有用户登录,您只是将应用程序连接到了Facebook。如果你想在你的应用程序中维护一个Facebook用户会话,你必须在你的web应用程序中实现Facebook连接,这将使你能够检索一个Facebook会话,然后你可以使用该会话代表用户向Facebook发出请求。你可以阅读更多关于它的here。
https://stackoverflow.com/questions/5409913
复制相似问题