我已经组建了一个微型网站,让用户可以在Facebook / Twitter /等上共享一棵树...
http://jajo.net/odditree/share.php?file=u/1418759317.png
一些php magic创建并上传他们的图像,然后设置一个变量以在最后一页上检索。
$file = $_GET["file"];
$url = "http://www.jajo.net/odditree/" . $file;
除了Facebook共享对话框外,一切正常。
首先,我尝试使用网址分享图片:
<a class="btn fb" href="" onclick="window.open('http://www.facebook.com/sharer.php?s=100&p[url]=<?echo $url?>&p[images][0]=<?echo $url?>&p[title]=Jajo - Holiday Odditree=', 'newwindow', 'width=600, height=250'); return false;"><span class="icon"><i class="icon-facebook"></i></span> Share on Facebook</a>
有时这会加载描述,有时是图像。从来没有。
在努力完成这项工作后,我向Facebook的遗嘱承认并创建了一个App。
按照开发文档后我把它放在一起:
<a style="cursor:pointer;" onclick="window.open('https://www.facebook.com/sharer/sharer.php?app_id=823686387676926&u=http%3A%2F%2Fwww.jajo.net%2Fodditree&display=popup&ref=plugin' , 'newwindow', 'width=600, height=250'); return flase;">Facebook Again</a>
该网站现在依靠Facebook进行繁重的工作,我需要做的就是提供开放的图表数据。
以下是这样的:
<meta property="og:title" content="Jajo Holiday Odditree">
<meta property="og:site_name" content="Jajo Holiday Odditree">
<meta property="og:url" content="http://www.jajo.net/odditree/">
<meta property="og:description" content="<?if ($url) {?>Behold my @Jajo Holiday #Odditree! Share your own Odditree creation. http://jajo.net/odditree<?}else{?>Create your own Odditree. http://jajo.net/odditree<?}?>">
<meta property="og:image" content="<?php echo $params['image']; ?>">
<meta property="fb:app_id" content="823686387676926">
<meta property="og:type" content="website">
据我所知,一切都在它需要的地方,它甚至可以在我查看源代码时正确回显数据。然而,分享按钮只显示:
它在那里拉动的徽标图像在共享时会消失,而在我的时间线上它只是一个空白框。而不是打开的图形图像:
我已经多次调试和报废了,但是我的og:图像总是空着。 https://developers.facebook.com/tools/debug/og/object/
我在这里不知所措。
如果有人可以帮我解决这个问题,我真的很感激。
=== UPDATES === 在涉及几个人之后,进行了长时间的聊天,并拔掉了头发...我们无法及时完成这项工作以便网站启动。所以我们放弃了facebook的东西,它变成了推特活动。
毕竟说完了,我最好的猜测是它与图像尺寸有关。
答案 0 :(得分:1)
我之前遇到过问题,无论我做什么,它都会在图像上提供左/右箭头选项。在网上阅读一些东西。一个建议在页面头部使用image_src
标记。
<link rel="image_src" href="http://URL-TO-YOUR-IMAGE" / >
但这似乎是旧的方式,而不是开放的图形方式。看到其他听起来更有希望的东西,清除了FB的缓存。
要强制Facebook刷新其缓存以便您的更改反映在Facebook上,您必须强制您的页面被“删除”。当页面的管理员点击“赞”按钮或输入URL时,该页面会被删除进入Facebook URL Linter。
来自这篇文章: http://www.hyperarts.com/blog/how-to-control-facebook-image-thumbnail-text-popup-dialogs/
好奇你要添加第二个og:image
会发生什么。
答案 1 :(得分:1)
对不起,您没有及时到达。
我只是度过了令人沮丧的时光,而我的解决方案可能就是您的。我会将其发布在这里,供任何追随我们的人使用。 Facebook OG:图片未显示。啊!我不敢相信昨晚和今天在此上浪费了多少时间。太疯狂了!我遵循了每条兔子路径,Facebook继续忽略了我的og:image属性(我什至在我的web.config中删除了ssl的url重定向,并重新编码了该网站,以便获得一个不安全的图像版本)。一切对我来说似乎都是正确的,但它一直无视该财产。
然后...
我去了这里
这是您要使用的工具,而不是这个:
https://developers.facebook.com/tools/debug/sharing/?q=https%3A%2F%2Fwww.google.com
资源管理器会为您提供共享调试工具所没有的详细错误消息,在我的情况下:
我的图片文件名中有未经URL编码的空格。您的文件名中有一个空格,它将可以正常浏览,但是Facebook会拒绝共享调试器页面上的属性,而不会出现任何错误消息(不确定为什么将其称为调试器,资源管理器才是真正的调试器)。 (如果我只能从中救出一个人,那我的痛苦是值得的。)
哦,是的。资源管理器的链接位于“调试器”页面的最底部(标题为“通过API抓取”)。