Facebook 打开指向页面选项卡的链接的图形信息

Facebook 打开指向页面选项卡的链接的图形信息,facebook,facebook-opengraph,Facebook,Facebook Opengraph,将链接直接发布到Facebook页面上的选项卡时 https://www.facebook.com/PAGENAME?sk=app_APPID Facebook会选择页面的开放图标签,这意味着链接帖子会与页面的个人资料图片、名称以及“页面•n类似这样”的描述相关联 我曾希望Facebook会使用应用程序HTML中的og标签,允许自定义链接帖子 为Facebook页面上的特定选项卡提供直接链接的最佳方式是什么?在链接帖子中提供自定义内容?实现这一点的最佳方式是在网站(www.exa

将链接直接发布到Facebook页面上的选项卡时

https://www.facebook.com/PAGENAME?sk=app_APPID
Facebook会选择页面的开放图标签,这意味着链接帖子会与页面的个人资料图片、名称以及“页面•
n
类似这样”的描述相关联

我曾希望Facebook会使用应用程序HTML中的
og
标签,允许自定义链接帖子


为Facebook页面上的特定选项卡提供直接链接的最佳方式是什么?在链接帖子中提供自定义内容?

实现这一点的最佳方式是在网站(www.example.com/fb/redirectorForApp.html)上托管一个重定向器页面,该页面在javascript超时时进行重定向。该重定向器页面具有您想要指定的og标记。重定向将使此人停留在
https://www.facebook.com/PAGENAME?sk=app_APPID
。javascript重定向的酷之处在于,重定向不是由linter运行的,因此它可以拾取正确的og:标记,同时还允许用户直接转到页面选项卡。祝你好运

我是一个新用户,所以我还不能对DMCS的答案发表评论:-)

但我必须这样做一次,这也是通过一个“重定向器”。但是,不需要设置超时,只需:


地点:http://www.facebook.com/PAGENAME?sk=app_APPID';
所以不要拖延


顺便说一句,如果你检查标签URL,你会看到它有一个重定向路径,通过它的
og:URL
标签从
https://www.facebook.com/PAGENAME?sk=app_APPID
https://www.facebook.com/PAGENAME
。也许你应该检查一下将默认登录标签设置为你的标签是否会改变任何事情。

由于你的页面标签的内容位于iFrame内,Facebook刮板将始终首先看到iFrame外的元标签,这些元标签由Facebook设置并描述你的Facebook页面。在中尝试url,并在页面底部查看刮板看到的url。不幸的是,您无法在iFrame中更改这些Facebook元标记。这就是为什么实现你想要的唯一方法就是通过重定向。在使用以下代码之前,我已经这样做了:


函数NotInFacebookFrame(){
返回top==self;
}
函数refererRisfaceBookApp(){
if(文件参考人){
返回document.referer.indexOf(“facebook.com”)!=-1;
}
返回false;
}
if(NotInFacebookFrame()| | refererIsFaceBookApp()){
顶部。位置。替换(“https://www.facebook.com/PAGENAME?sk=app_APPID");
}

我也有同样的问题。。。以下是我所做的:

  • 重定向页面:获取参数并设置共享服务标签或至少OpenGraph标签的页面。然后此页面将创建一个指向第二个页面(Facebook Pagetab)的URL,如下所示:

    //{facebook-page.link}/?sk=app_{your-app-id}&app_data=X
    
要获取{facebook page.link},请参见此示例请求:
参见示例:
见文件:

不要每次都立即重定向,否则将不起作用。而是在某些条件下执行重定向。例如:

    if (strpos($_SERVER['HTTP_REFERER'], '//www.facebook.com/')) {
        drupal_add_js('window.location = "' . $url_final . '"', 'inline');
    }   
请记住,要创建URL,请使用从Facebook获得的页面链接属性,而不是页面ID,否则您将丢失签名请求中的app_数据参数

  • Facebook页面标签:在Facebook页面标签的Iframe内调用的页面。此页面将获取带有app_数据的SignedRequest,并将加载最终用户将看到的特定内容
请记住,app_数据也可以是数组(或序列化对象):

提示:如果您使用的是Drupal,您可以避免最后的重定向,只需将$\u GET['q']覆盖到所需的页面即可。通过这种方式,您不必引导Drupal,只需执行另一个重定向。您可以使用hook_init实现这一点


提示:将您的请求保存到Facebook API,以加速未来的调用。对graph API的每个请求至少需要300毫秒。数据库访问速度明显更快。

我也一直在使用重定向方法,但如果用户有共享内容的动机(例如在投票应用程序中),则这种方法是不够的:他们经常从浏览器复制页面选项卡URL,而共享内容最终会与通用页面配置文件信息关联

但好消息是有一个解决方案!但这相当复杂——特别是如果您有多个子页面具有不同的og:标记(例如在投票竞争中)

它是如何工作的?

此解决方案是在服务器上的页面上设置ogtags,使其具有重定向到canvas应用程序页面的规范url-允许canvas应用程序以这种方式指定自己的自定义ogtags。如果您将所有用户重定向到正确的页面选项卡,画布页面实际上将不可查看,但它将允许您为页面选项卡应用程序提供自定义标签

步骤

  • 为应用程序创建画布页面(使用与页面选项卡相同的URL)
  • 将og:tags添加到您的页面,就像您通常所做的那样
  • 将og:url参数设置为画布应用程序的url()
  • 添加代码,以便当请求来自页面选项卡iframe外部(在画布中或直接在服务器上)时,将用户重定向到适当的页面选项卡

  • 可能不可能,您必须链接到
    https://www.facebook.com/PAGENAME?sk=app_APPID
    明确吗?@webarto:是的。假设页面是针对一个主要品牌的。该品牌正在选项卡上运行促销(该选项卡不是默认选项卡,可以
          app_data[var1]=value1&app_data[var2]=value2