如何从localhost测试我的facebook页面标签应用程序

如何从localhost测试我的facebook页面标签应用程序,facebook,Facebook,我正在开发一个facebook页面标签应用程序。当我在应用程序设置中将页面选项卡URL设置为类似于localhost/fbapp的内容时,它不起作用,因为页面选项卡不仅仅是iframe。有什么解决办法吗 编辑 我正在用ASP.NET MVC-3.0和fb C#SDK构建facebook页面选项卡 到目前为止,我尝试修改hosts文件,将我在应用程序设置中的URL指向localhost(127.0.0.1)。我一直以这种方式测试facebook应用程序,但它在facebook页面选项卡中不起作用。

我正在开发一个facebook页面标签应用程序。当我在应用程序设置中将页面选项卡URL设置为类似于
localhost/fbapp
的内容时,它不起作用,因为页面选项卡不仅仅是iframe。有什么解决办法吗

编辑

我正在用ASP.NET MVC-3.0和fb C#SDK构建facebook页面选项卡


到目前为止,我尝试修改
hosts
文件,将我在应用程序设置中的URL指向localhost(127.0.0.1)。我一直以这种方式测试facebook应用程序,但它在facebook页面选项卡中不起作用。

在页面选项卡url设置的应用程序设置中

http://localhost/yourpagetabdir/

我正在将此设置用于我的页面应用程序测试frmlocalhost。它可以从我的ASP.Net开发服务器正常工作。如果您正在使用IIS服务器,请确保您的IIS服务器允许iframe中的页面

在此之后,如果您希望获得页面签名请求

 Facebook.FacebookConfigurationSection s = new FacebookConfigurationSection();
                s.AppId = "AppID";
                s.AppSecret = "Secret";
                FacebookWebContext wc = new FacebookWebContext(s);
                dynamic da = wc.SignedRequest.Data;
                dynamic page = da.page;
                string curpageid = page.id;
                bool isLiked = page.liked;
                bool isAdmin = page.admin;

例如,使用FB PHP SDK,您可以发布已签名的_请求,并用几行代码对其进行解析:-

require_once ("facebook.php"); // this file comes from the SDK
$config = array();
$config['appId'] = 'get_appID_from_app_menu';
$config['secret'] = 'get_secret_below_appID';
$facebook = new Facebook($config);
$signed_request = $facebook->getSignedRequest();
print_r($signed_request);

避免FB博客中给出的冗长例子。祝您好运编码:)

尝试编辑您的主机文件,以便在转到
http://example.com
它链接到您的
http://localhost/yourapp

以下是如何做到这一点:

  • Windows:(您的本地主机URL应具有有效的网站格式:127.0.0.1 dummydomainname.tld)
  • MacOS:(再次确保您拥有有效的网站格式)
  • Linux:您可能已经知道如何做到这一点:)

这应该可以工作,因为iframe将指向一个有效的URL,该URL在本地计算机上将指向您的内容。请注意,如果您从其他计算机访问该选项卡,这将不起作用,因为对于这些计算机,URL将指向其他内容(或不指向任何内容,取决于您选择的域名)

我发现了facebook页面标签的问题。即使我启用了沙箱模式,他们似乎也不接受页面选项卡上的
http
。我所要做的就是将IIS设置为使用https,并通过ssl运行应用程序。它现在工作得很好。谢谢大家的帮助

这行不通。我知道我可以用这种方式测试facebook应用程序,但页面标签似乎不仅仅是一个iframe。你是在要求FB使用该配置发布到自己的页面上。这是不对的。POST请求发生在客户端,在您的浏览器中–您自己机器上的浏览器非常清楚,localhost是指他正在运行的机器。检查此页面选项卡我当前正在使用此页面选项卡应用程序从我的localhost进行测试是的,实际上localhost可以工作。这只是SSL设置,就像我在回答和@AshwiniDhekane提到的那样。我已经在我的帐户上启用了安全浏览,并且每个facebook页面都使用https,因此我的facebook页面需要使用https。与facebook应用程序和页面选项卡没有区别。谢谢,没有解决办法。对于pagetab(已验证和未验证),FB将在加载pagetab时向站点发布已签名的_请求。您可以尝试通过记录此签名的\u请求并将其用于本地主机的HTTP\u POST来模拟此情况。注意:已签名的_请求已过期!是的,这就是我想的,我正在以这种方式进行测试。我实际上想测试解析签名的请求。谢谢你的帮助!请参阅下面我关于快速解析签名请求的回答使用公共IP上的域进行测试,如果您的IP发生变化,您可以设置DNS TTL 1分钟。@EricYin感谢您的评论,不幸的是我在f/w范围内,无法控制..谢谢,但我正在使用C#SDK。我知道怎么做。我只是想在我的本地via页面标签上测试一下。谢谢,但我以前试过,现在仍然不起作用。我知道这在fb应用程序页面中有效,但在fb页面的应用程序选项卡中有效。您可能在Facebook安全设置中启用了“安全浏览”。https页面/应用程序将只在画布内加载https URL。@AshwiniDhekane你说得对。我已经启用了它,所有需要通过https提供的服务都已启用。