Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于iFrame的FB页面应用程序上类似Facebook的按钮-问题_Facebook_Facebook Graph Api_Iframe App - Fatal编程技术网

基于iFrame的FB页面应用程序上类似Facebook的按钮-问题

基于iFrame的FB页面应用程序上类似Facebook的按钮-问题,facebook,facebook-graph-api,iframe-app,Facebook,Facebook Graph Api,Iframe App,在我的FB fan pages选项卡中向基于iFrame的页面添加like按钮时遇到问题。我使用JavaScript SDK和Open Graph来指定我希望用户“喜欢”的页面(即我的FB页面中的当前页面) 该页面基于iFrame,是FB中的一个应用程序,可通过我的FB页面的FB页面选项卡访问。问题是Facebook将类似的内容分配给了我的FB页面本身(如果你愿意,我的FB页面主页),而不是有问题的页面(我的测试页面–它被设置为一个应用程序,并以“og测试”的名称出现在我的FB页面选项卡中) 我

在我的FB fan pages选项卡中向基于iFrame的页面添加like按钮时遇到问题。我使用JavaScript SDK和Open Graph来指定我希望用户“喜欢”的页面(即我的FB页面中的当前页面)

该页面基于iFrame,是FB中的一个应用程序,可通过我的FB页面的FB页面选项卡访问。问题是Facebook将类似的内容分配给了我的FB页面本身(如果你愿意,我的FB页面主页),而不是有问题的页面(我的测试页面–它被设置为一个应用程序,并以“og测试”的名称出现在我的FB页面选项卡中)

我尝试通过FB linter运行iFrame的目标页面,它给出了一个奇怪的错误,说我提供了“Other”的开放图形类型(我没有,我在META标记中提供了“website”),请参见以下内容:

此外,从调试页面上看,Facebook似乎要么忽略了我的“og:url”值中的查询字符串,因此只看到我的FB页面的虚荣url,要么对基于iFrame的应用程序页面存在某种阻碍

有人能解释一下吗?我认为从这篇文章可以实现我的目标:

iFrame目标页的代码为:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>Test Like</title>
    <meta property="og:title" content="OG Test"/>
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="https://www.facebook.com/EssentialTravel?sk=app_275969292428556"/>
    <meta property="og:image" content=""/>
    <meta property="og:site_name" content=""/>
    <meta property="fb:admins" content="100002424161307"/>
    <meta property="fb:app_id" content="275969292428556"/>
    <meta property="og:description" content="OG test through canvas page"/>
  </head>
  <body>
  <div id="fb-root"></div>
  <script src="http://connect.facebook.net/en_US/all.js"></script>
  <script>
    FB.init({
      appId  : '275969292428556',
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true, // parse XFBML
      oauth  : true // enable OAuth 2.0
    });
  </script>
    Test Page<br>
    <script src="http://connect.facebook.net/en_US/all.js#appId=156081301143077&amp;xfbml=1"></script><fb:like href="https://www.facebook.com/EssentialTravel?sk=app_275969292428556" send="false" width="450" show_faces="false" action="recommend" font=""></fb:like>
  </body>
</html>

试验样
FB.init({
appId:'2759692428556',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true,//解析xfbml
oauth:true//启用oauth 2.0
});
测试页
有人有什么想法吗

谢谢


Pjordanna

不幸的是,您无法为页面上的实际选项卡设置like按钮

正如您所发现的,尝试使用url(如)创建一个类似按钮只会为页面而不是单个选项卡创建一个类似按钮


为特定选项卡创建一个like按钮的最佳方法是只使用服务器上应用程序的URL,例如。

嗨,Jon,谢谢你提供的信息。这就是我要做的。我想我可以检查一下,当我的应用程序加载时,Facebook是否从我的应用程序中请求了该应用程序,如果没有,则将用户重定向到我的Facbook页面中的应用程序。通过这种方式,如果有人从“喜欢”链接到我的应用程序,他们最终会出现在FB页面应用程序上,而不仅仅是应用程序本身。除了pjordanna,我不确定是否有人看到了这一点,我已经实现了相同的机制(比如指向外部页面,该页面会立即重定向到facebook页面内的应用程序),而且效果很好(外部页面包含所有og meta标记,以便FB创建一个好的新闻提要帖子).然而,我担心这可能会违反FB的条款?毕竟,用户在幕后到底喜欢什么并不十分清楚,我可以想象这样的场景会被用于欺诈目的。如果你将其设置为指向自己的服务器,Facebook会区分页面(使用包括查询在内的完整路径)吗或者喜欢与喜欢是一样的