我正在开发一个Facebook页面标签应用。当我将应用设置中的页面标签网址设置为localhost/fbapp
时,由于页面标签不仅仅是iframe,因此无效。有解决方法吗?
修改
我正在使用带有fb C#SDK的ASP.NET MVC-3.0构建facebook 页面选项卡 。
到目前为止,我尝试修改hosts
文件,将应用程序设置中的URL指向localhost(127.0.0.1)。我一直在以这种方式测试Facebook应用程序,但它在Facebook页面选项卡中不起作用。
答案 0 :(得分:3)
在页面标签页面设置
中的应用程序设置中http://localhost/yourpagetabdir/
我正在将此设置用于我的页面应用程序测试frmlocalhost,如果您使用的是IIS服务器,请确保您的IIS服务器允许使用iframe中的页面。它可以正常使用我的ASP.Net开发服务器。
之后如果你想获得页签名请求
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;
答案 1 :(得分:1)
尝试编辑您的主机文件,以便在转到http://example.com
时链接到您的http://localhost/yourapp
以下是如何操作:
这应该有效,因为iframe会指向一个有效的URL,在本地计算机上会指向您的内容。请注意,如果您从其他计算机访问该选项卡,这将不起作用,因为对于他们,URL将指向其他内容(或根本不是,取决于您选择的域名)。
答案 2 :(得分:0)
以FB PHP SDK为例,您可以发布signed_request并用几行解析它: -
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的博客中给出这个例子。祝你好运编码:)
答案 3 :(得分:0)
我弄清楚了facebook页面标签的问题。即使我启用了沙盒模式,它们似乎也不接受页面选项卡上的http
。我所要做的就是设置IIS以使用https
并在ssl上运行应用程序。它现在正在完美运作。谢谢大家的帮助