问题:我可以从本地主机运行我的Facebook应用程序。
描述:我想在我的网站页面上获取facebook墙贴。为了测试,我创建了一个Facebook应用程序并将网站URL作为“http:localhost:8088 / fb /”和应用程序域名作为“localhost”。现在我想获得用户ID,以便我可以访问Facebook墙贴。但是所有我得到的是用户ID等于零。我已经检查了这么多次。但一切似乎都是正确的。所以我想知道我们可以使用本地主机作为网站url吗?我可以通过从本地主机运行我的代码来获取用户ID。以下是我的代码。
<?php
include_once "facebook.php";
$facebook = new Facebook(array(
'appId' => '<app id>',
'secret' => '<app secret>',
'cookie' => true,
));
$uid = $facebook->getUser();
echo $uid;
$me = null;
if ($uid) {
try {
$me = $facebook->api('/me');
$feed = $facebook->api('/me/feed/');
} catch (FacebookApiException $e) {
error_log($e);
}
}
$params = array(
'scope' => 'read_stream',
'redirect_uri' => 'http://localhost:8088/fb/feeds.php'
);
if ($uid) {
$logoutUrl = $facebook->getLogoutUrl();
}
else {
$loginUrl = $facebook->getLoginUrl($params);
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>php-sdk</title>
</head>
<body>
<?php if($uid)
{
?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php
}
else
{
?>
<a href="<?php echo $loginUrl; ?>">Login</a>
<?php
}
?>
<?php if ($me): ?>
<?php
echo "<pre>";
print_r($feed);
echo "</pre>";
?>
<?php endif ?>
</body>
</html>
请告诉我这里有什么问题。我需要执行任何设置吗?我将非常感激。
答案 0 :(得分:1)
是的,您可以从localhost环境运行您的应用程序。除了您不需要在应用程序域中添加localhost并且您的站点URL应该是
之外,您已经完成了所有操作。http:// localhost:8088 / fb /
而不是“http:localhost:8088 / fb /”
答案 1 :(得分:1)
在localhost上测试Facebook api的更好方法是首先为您的Web应用程序(如yourapp.local)创建虚拟主机,然后相应地设置Facebook应用程序信息中的URL。您可以为本地和远程站点创建单独的Facebook应用程序。
答案 2 :(得分:0)
你可以在很大程度上。 仅仅是iframe的Facebook应用程序不需要连接到您的主机 - 只有您/您的浏览器才能连接。
需要注意两件事:
确保您的localhost上有SSL(https://)。如果没有,请在测试Facebook帐户设置中禁用SSL。
Facebook需要访问您的主机的一种情况包括共享您应用中托管的网址或图片。在测试本地应用程序时使用外部占位符。
答案 3 :(得分:0)
如果您的应用中有facebook聚合(对象+操作),我相信您不能这样做。因为他们需要直接通过Facebook访问