php – Facebook – 解析输入URL时出错,没有数据被缓存,或者没有数据被刮除

前端之家收集整理的这篇文章主要介绍了php – Facebook – 解析输入URL时出错,没有数据被缓存,或者没有数据被刮除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
经过研究,我发现很多人面临同样的问题.但到目前为止,我不解决,这发生在我将服务器切换到linode.com后

我们举个例子. 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),但到目前为止,我没有解决方案.

对于遇到同一问题但出于不同原因的人,我发现了一些有趣的事情,关于Facebook如何“刮”页面,在进行一些试验时检查服务器的日志.

首先:如果你没有尝试与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"/>

猜你在找的PHP相关文章