0

基本上,我正在制作一个具有动态og:图像属性的网站。我已经添加了100个图像,并通过PHP中的rand函数更改图像。 我得到的问题是Facebook缓存了我的网站,每次用户共享URL,它每次都显示相同的图像。我希望Facebook每次张贴链接时都会重新抓取并显示随机图片。如何开发动态改变og:image facebook属性的网站?

这是我开发的页面的代码:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
     <meta name="viewport" content="initial-scale=1, maximum-scale=1"> 
     <meta name="twitter:card" value="summary"> 

     <meta property="fb:app_id" content="xxxxxxxxxxxxx10" /> 
     <meta property="og:description" content="Like it? Share with friends... "/> 
     <meta property="og:title" content="Your future company is" /> 
     <meta property="og:type" content="article" /> 
     <meta property="og:url" content="http://justtodo.xyz/company/" /> 
     <?php 
      $imageURL = 'http://justtodo.xyz/company/images/' . rand(1, 100) . '_260x135.jpg'; 
     ?> 
     <meta property="og:image" content="<?php echo($imageURL)?>" /> 
     <meta property="og:image:type" content="image/jpeg" /> 
     <meta property="og:image:width" content="200" /> 
     <meta property="og:image:height" content="200" /> 


    <script> 
     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
     })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

     ga('create', 'UA-100487432-1', 'auto'); 
     ga('send', 'pageview'); 

    </script> 

    <script src="https://code.jquery.com/jquery-1.7.1.min.js" integrity="sha256-iBcUE/x23aI6syuqF7EeT/+JFBxjPs5zeFJEXxumwb0=" crossorigin="anonymous"></script> 

    <script> 




    window.fbAsyncInit = function() { 
     FB.init({ 
      appId   : 'xxxxxxxxxxxxx10', 
      autoLogAppEvents : true, 
      xfbml   : true, 
      version   : 'v2.9' 
     }); 
     FB.AppEvents.logPageView(); 
     }; 

     (function(d, s, id){ 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

     FB.api('https://graph.facebook.com/', 'post', { 
      id: '<?php echo($imageURL)?>', 
      scrape: true 
     }, function(response) { 
      //console.log('rescrape!',response); 
     }); 
    </script> 

    <title>Your future company...</title> 


    <META HTTP-EQUIV="REFRESH" CONTENT="0; URL=https://youtu.be/uqJNjb-zg3s"> 
    <script> 
    setTimeout(function() {  
    window.location.href = "https://youtu.be/uqJNjb-zg3s"; 
    },10); 
    </script> 



    </head> 
<body> 


    <div style="text-align: center;font-size:2em;font-family:Consolas, Andale Mono, Lucida Console,Lucida Sans Typewriter, Monaco, Courier New, monospace">Loading your company...</div> 
</body> 
</html> 
+0

分享一个唯一的URL而不是相同的URL – WizKid

回答

0

你只有100张图片?我已经有500多个,我也想知道你是如何做到的。这个“Facebook评论游戏”已经变成了发烧。那么,据我研究,有3种方法来更改Facebook缓存图像。 1.)Facebook每24小时自动搜索一幅新图片(这对我们来说并不有用)。 2.)使用https://developers.facebook.com/tools/debug/(我认为我们可以用“再次提取”按钮进行无限循环,但我不知道如何做到这一点,除此之外,这只适用于我们在浏览器中打开网站时)。 3)你可以用这个AJAX代码要求更新:

Var fbxhr = new XMLHttpRequest(); 
fbxhr.open ("POST", "https://graph.facebook.com", true); 
fbxhr.setRequestHeader ("Content-type", "application/x-www-form-urlencoded"); 
fbxhr.send ("id = http: //you_site.com/&scrape=true"); 

这段JavaScript代码加上此标记:

<Meta http-equiv = "refresh" content = "0"/> 

而与此PHP代码:

<Meta property = "og: image" content = "<? Php echo 'http://your_site.com/'.mt_rand(1,100).'.jpg';?>"/> 

这个原因该页面每0秒更新一次,并接收一个新的随机图像,可以从“1.jpg”命名为“100.jpg”。 然后通过AJAX请求更新图像。 您也可以在Javascript本身内部执行循环,但是您必须让PHP在循环内被调用。我只是还没有测试过。

我的问题是:这只有当我的网站在浏览器中打开无限刷新时才有效。

编辑:这篇文章的回复是在06/03/2017这个游戏开始出现的同一天。只有我不了解Python的任何内容。你能告诉我如何把Python放入我的HTML吗?

链接:Dynamic Image for Facebook Opengraph og:image meta tag