我在我的网站上分享 Facebook 内容时遇到问题。它实现了“喜欢”按钮,但是当您“喜欢”您的 Facebook 个人资料上的图片时,会显示旧图片(显然是缓存的图片)。那个网站上的东西是这样的......每天都有一张当天女孩的新照片,但网址总是一样的(由apache重写)。
我必须找到一些方法来自动和定期(当在网站上设置新图片时)清除 facebook 缓存。
当我将要刷新缓存的 url 直接放入 fb 调试工具(lint)表单并按“调试”时,它会在 somobody 喜欢我网站上的内容时清除缓存并刷新内容。
但问题是当我尝试自动刷新缓存时(通过 php 脚本或通过 cron 作业)。像这样的东西不起作用:
wget http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana
或者像这样也不起作用:
curl http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana
此外,php脚本不起作用:
$url = "http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana";
$useragent = "Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.10.229 Version/11.60";
if ( $ch = curl_init( $url ) )
{
curl_setopt( $ch , CURLOPT_HEADER , 0 );
curl_setopt( $ch , CURLOPT_RETURNTRANSFER , true );
curl_setopt( $ch , CURLOPT_USERAGENT , $useragent );
$str_response = curl_exec( $ch );
if( curl_errno( $ch ) != 0 )
{
$message = 'Girl of the day - cURL exec error: ' . $ch;
error_log( $message );
}
curl_close( $ch );
}
else
{
$message = 'Girl of the day - cURL init with url: ' . $url . ' failed';
error_log( $message );
}
喜欢的内容在网址上:
http://www.vecernji.hr/djevojka-dana 和 http://www.vecernji.hr/decko-dana
有谁知道我无法通过 php 脚本、wget 或 curl 刷新缓存的原因,但是当我将给定的 url 直接手动放入 lint 表单并按下提交按钮时,内容会刷新?