我们举个例子. www.acemark2u.com是托管在linode服务器下的一个网站,
当我在https://developers.facebook.com/tools/debug/og/object/中尝试调试时,它无法正确获取scrape信息,如果我尝试使用其中一页www.acemark2u.com/about-us,它只会显示错误“解析输入URL错误,没有数据被缓存,或没有数据被刮.“
奇怪的事情发生.当我尝试调试使用ip地址106.187.35.114/~acemark2一切顺利.抓取很好,页面没有错误404.
我怀疑它可能由“gethostbyaddr”功能引起(参考:http://www.gearhack.com/Forums/DisplayComments.php?file=Computer/Network/Internet/Preventing_Your_Web_Server_From_Blocking_Facebook_Share),但到目前为止,我没有解决方案.
首先:如果你没有尝试与FB共享一个页面,FB从来没有试图去除它,如果你只是把url放在Debug工具中,它不会这样做.
这是第一个原因,因为您收到错误:它只是声明FB没有页面上的信息,您必须“强制”它来刮擦页面.
当您第一次尝试分享页面时,FB会将其擦除(请求您的服务器首页40k的页面并分析打开的标签).
可能发生的是您看不到图像:Facebook Share Dialog does not display thumbnails one first load
原因是FB幕后仍在刮擦您的页面并缓存图像.下一次,其实你也有形象.
如何解决?预缓存:https://developers.facebook.com/docs/sharing/best-practices#precaching
或简单地添加
<Meta property="og:image:width" content="450"/> <Meta property="og:image:height" content="298"/>