我可以从本地主机运行我的Facebook应用程序

时间:2012-11-28 09:07:08

标签: php facebook-graph-api

问题:我可以从本地主机运行我的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>

请告诉我这里有什么问题。我需要执行任何设置吗?我将非常感激。

4 个答案:

答案 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应用程序不需要连接到您的主机 - 只有您/您的浏览器才能连接。

需要注意两件事:

  1. 确保您的localhost上有SSL(https://)。如果没有,请在测试Facebook帐户设置中禁用SSL。

  2. Facebook需要访问您的主机的一种情况包括共享您应用中托管的网址或图片。在测试本地应用程序时使用外部占位符。

答案 3 :(得分:0)

如果您的应用中有facebook聚合(对象+操作),我相信您不能这样做。因为他们需要直接通过Facebook访问