我根据网址中的GET参数生成图像,将它们组合起来,然后在facebook sharer中共享该图像。但是,除非我在调试工具中手动清除缓存,否则facebook似乎会缓存图像。
我需要一种方法来清除Facebook的缓存,然后再分享。这可能吗?
在这个例子中,我正在硬编码GET参数,但实际上它将基于选定的选项。
代码:
<?php
$img1= 'images/img1.png';
$img2 = 'images/img2.png';
$query = 'img1=';
$query .= $img1;
$query .= '&img2=';
$query .= $img2;
?>
<!--facebook meta-->
<meta property="og:image" content="http://mywebsite.com/mergePhotos.php?<?php echo $query;?>" />
<meta property="og:title" content="This is my website"/>
<meta property="fb:admins" content="123456789" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://mywebsite.com/mergePhotos.php?<?php echo $query;?>" />
<meta property="og:description" content="Look at these images I combined!" />
mergePhotos.php:
<?php
$imgl = $_GET['img1'];
$img2 = $_GET['img2'];
// Create image instances
$dest = imagecreatefrompng($imgl);
$src = imagecreatefrompng($img2);
imagecolortransparent($src, imagecolorat($src, 0, 0));
// Copy and merge
$src_x = imagesx($src);
$src_y = imagesy($src);
imagecopymerge($dest, $src, 0, 0, 0, 0, $src_x, $src_y, 100);
// Output and free from memory
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
?>
答案 0 :(得分:0)
我明白了。我需要在facebook共享者代码的末尾添加microtime(根据Marc B&#39的建议)。所以我的代码结构的方式是fb-sharer代码在一个页面上,并且它引用了另一个页面上的元数据。当我将微码查询添加到共享者代码的末尾时,Facebook强制刷新。
<div class="fb-share-button" data-href="http://mywebsite.com/facebookMeta.php?<?php echo(microtime());?>" > </div>