同一页面上有多个Facebook opengraph对象
我有一个页面,用户必须在多个对象上启动操作,但Facebooks design使用所需的元属性标记将您限制为每页只有一个对象同一页面上有多个Facebook opengraph对象,facebook,facebook-opengraph,Facebook,Facebook Opengraph,我有一个页面,用户必须在多个对象上启动操作,但Facebooks design使用所需的元属性标记将您限制为每页只有一个对象 有人找到了这个问题的解决方案吗?FB使用您分配给对象的URL来获取信息。唯一的解决方法是通过iframe或类似的方法显示对象。如果对象被直接引用,您需要一种方法重定向回组合对象视图的相应包装页。只要所有内容都在同一个域中,您就可以找到一种通过父对象在子帧之间进行通信的方法。打开的图形使用URL作为对象标识符,因此在一个页面上不可能有多个对象,页面就是对象 相反,每个对象都
有人找到了这个问题的解决方案吗?FB使用您分配给对象的URL来获取信息。唯一的解决方法是通过iframe或类似的方法显示对象。如果对象被直接引用,您需要一种方法重定向回组合对象视图的相应包装页。只要所有内容都在同一个域中,您就可以找到一种通过父对象在子帧之间进行通信的方法。打开的图形使用URL作为对象标识符,因此在一个页面上不可能有多个对象,页面就是对象 相反,每个对象都需要一个URL,该URL的HTML应该包含正确的OG标记 您可以在一个页面上放置多个like按钮,并通过为每个like按钮指定“href”参数使它们指向您的每个对象 但是,如果您希望用户在单击指向这些对象的链接时返回到同一页面,您可以这样做,但这有点棘手 在对象页面上,在服务器上,查看传入的请求useragent。如果useragent包含字符串“facebookexternalhit”,则呈现HTML和OG标记-这就是Facebook scraper查看页面的方式。如果useragent不包含此字符串,请对希望用户看到的页面执行302重拨 结果如何?许多对象,但只有一个用户可见的页面。赢 这就是你要做的:
<?php
if ($_SERVER["HTTP_USER_AGENT"] != "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
redirect('http://www.somesite.com', 302);
}
function redirect($url, $type=302) {
if ($type == 301) header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
die();
}
?>
<html...
这是一个很好的答案,但有几件事对我来说不太好,所以我尝试了另一种选择
我使用的不是按钮标签中的href,而是Iframes
为每个OG对象创建一系列html页面
在每个页面中添加必要的facebook头脚本和facebook根元素以调用facebook api
创建表单输入元素,这些元素将调用每个OG对象的操作。给这些元素中的每个元素一个id
包括一个小脚本,该脚本将确定您是和Iframe还是一个页面,因此,如果用户单击facebook提要,您可以将用户重定向回您的主页
最后,在页面上放置和调整iframe的大小,将样式设置为“无框架”,并将其设置为“无滚动”。使用表单元素的ID来确定应该在iframe视图中执行哪些操作
我仍在努力改进我的手机输出,但它的工作,因为我它应该为大多数浏览器