【问题标题】:How to Let Facebook Share Recognise Random Background Image如何让 Facebook Share 识别随机背景图片
【发布时间】:2015-08-19 12:45:28
【问题描述】:

我的问题是,我在我的网站http://goo.gl/VDtmbk 上按 CSS 和 PHP 生成背景图像,如下所示:

CSS:

background: url(random_img.php) no-repeat top left fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover; 
background-attachment: fixed;

PHP,random_img.php:

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: image/jpeg');
$vorresult = glob( "../../uploads/*1500x*.jpg" );
$result = array_diff( $vorresult, glob( "../../uploads/*{person,karte}*.jpg", GLOB_BRACE ) );
$seed = floor(time()/120); 
srand($seed); 
$random_image = $result[rand(0, count($result)-1)];
header('Location:'.$random_image.'');

我在某处读到:Facebook 应该可以毫无问题地在自己的网站上找到图像,只要它们直接出现在 html 中(如 <img src="path/to/img.png" />)而不是通过 css(background-image: url(path/to/img.png);)。

那么,有没有办法解决这个问题,让 Facebook 分享“看到”随机背景图片(然后将其放在 FB 上的共享帖子中)?

【问题讨论】:

    标签: php facebook random background-image share


    【解决方案1】:

    这听起来会给你带来很多问题。但是,假设它应该可以工作(我很可能认为不可以),您可以做的是动态生成 FB og:image 元标记 (https://developers.facebook.com/docs/sharing/webmasters)

    我不能 100% 确定这会起作用,因为如果您的网站很受欢迎,我怀疑 Facebook 会在每次生成图片时更改图片。我 100% 确定它会在一定数量的共享后冻结标题。

    【讨论】:

    • 如果您更新图片/帖子,您需要重新运行debugger 工具以清除 facebook 的缓存。这也可以通过 cURL 的各种请求动态实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    相关资源
    最近更新 更多