更新og:标题

时间:2012-02-12 12:22:11

标签: facebook facebook-like facebook-opengraph

我使用这个教程https://developers.facebook.com/docs/opengraph/tutorial/来制作我的第一个应用程序,但我想使用php变量为我的og:这样的标题“/>。这个php变量每次页面加载时都会不断变化但是当我在facebook中发布我的动作与旧标题一起出现! 这是代码:

      <?php
    $title = ' Hello world';
 // <---- This php variable is changing every time 
the page loads but the title is not being recognised

    ?>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
    xmlns:fb="https://www.facebook.com/2008/fbml"> 
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# fitnessgod: http://ogp.me/ns/fb/fitnessgod#">
    <meta property="og:locale" content="en_US" />
    <meta property="fb:app_id" content="My app Id" /> 
    <meta property="og:type" content="fitnessgod:news" /> 
    <meta property="og:url" content="https://www.fitness-god.com/share-facebook.php" /> 
    <meta property="og:title" content="<?php echo $title; ?>" /> 
    <meta property="og:description" content="let's do sport" /> 
    <meta property="og:image" content="https://www.fitness-god.com/images/sport dinamic.png" /> 

<script type="text/javascript">
    function postCook()
    {
    FB.api('/me/fitnessgod:share' + 
    '?news=https://www.fitness-god.com/share-facebook.php','post',
    function(response) {
    if (!response || response.error) {
    alert('Error occured');
    } else {
    alert('Post was successful! Action ID: ' + response.id);
    }
    });
    }
    </script>
    </head> 

<body> 

    <div id="fb-root"></div>

    <script src="https://connect.facebook.net/en_US/all.js"></script>

    <script>

    FB.init({ 

    appId:'My App id', cookie:true, 

    status:true, xfbml:true, oauth:true

    });

    </script>

<fb:add-to-timeline></fb:add-to-timeline>

<h3>

    <font size="30" face="verdana" color="grey">

    Stuffed Cookies

    </font> 

    </h3> 

    <p>

    <img title="Sports News" 

    src="https://www.fitness-god.com/images/sport dinamic.png" 

    width="550"/><br />

    </p> 

 <form>

    <input type="button" value="Share news" onClick="postCook()" /> 

    </form>
    <fb:activity actions="fitnessgod:share"></fb:activity>
    </body> 

    </html>

2 个答案:

答案 0 :(得分:0)

您需要更正元标记定义。使用属性名称,而不是属性:

E.g:

<meta name="og:title" content="<?php echo $title; ?>" />

您可以使用调试器来测试代码:

http://developers.facebook.com/tools/debug

另请注意,单击共享时,可能会缓存页面内容。但是,调试器始终会获得最新内容。

答案 1 :(得分:0)

在使用该链接执行多项操作(50 个喜欢、分享和/或评论)后,您似乎正在体验 og:title 的“冻结”。

Facebook 这样做的主要原因之一是为了防止许多人共享看似安全的链接,然后让网站所有者将标题替换为令人反感的内容,并将其显示在人们的时间线上。

有关其他信息,请参阅 this link