facebook og数据不更新

时间:2014-12-13 09:56:25

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我创建了一个订阅的Facebook应用程序。

当用户打开应用程序时,会出现一个名为“SUBSCRIBE”的按钮。单击它时,将调用javascript函数completePayment()。出现带有订阅的facebook弹出窗口。但是,存在一个很大的问题。如果我更改og:图像URL并将价格设置为10.00美元,计费周期为1个月,我将文件上传到服务器,然后单击SUBSCRIBE按钮,我仍然可以看到订阅页面说5.00美元/周,图片为空白。

就像我第一次设置数据时一样,即使我使用新值更新https://www.mydomain.com/_product.php中的所有数据,也就是这样。我甚至退出并重新登录,但仍未反映出任何变化。

我甚至清空了_product.php页面并将其上传到服务器,订阅仍然有效并且每周显示5.00美元,图片为空白。

有关如何解决此问题的任何想法?

我在主页上有这个代码:

<a href="#" onclick="completePayment()"> 
    <img src="https://www.**********.com/subscribe.png" alt="Subscribe" title="Subscribe" style="vertical-align: top"/>
    <script src="https://connect.facebook.net/en_US/all.js"></script>
    <script type="text/javascript">
     FB.init({
      appId:'2***********6',
      cookie:true,
      status:true,
      xfbml:true
     });
      function completePayment(){
         var obj = {
        method: 'pay',
        action: 'create_subscription',
        product: 'https://www.mydomain.com/_product.php'
     };
    FB.ui(obj);
    }
    </script>
    </a>

这是“https://www.mydomain.com/_product.php”页面中的HTML代码:

<html>
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# fbpayment: http://ogp.me/ns/fb/fbpayment#">        
    <meta property="og:title" content="********* Subscription" />
    <meta property="og:image" content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png" />
    <meta property="og:description" content="****** Subscription" />
    <meta property="fbpayment:price" content="5.00 USD" />
    <meta property="fbpayment:alternate_price" content="3.49 EUR" />
    <meta property="fbpayment:alternate_price" content="3.49 GBP" />
    <meta property="fbpayment:trial_duration" content="7 days" />
    <meta property="fbpayment:billing_period" content="1 week" />
    <meta property="fb:app_id" content="2*************6" />
    <meta property="og:url" content="https://www.mydomain.com/_product.php" />
    <meta property="og:type" content="fbpayment:subscription" />
</html>

1 个答案:

答案 0 :(得分:1)

如果不是关于共享内容的半永久性缓存,则facebook页面有一个looong: 有3种选择:

1)尝试清除页面缓存:https://developers.facebook.com/tools/debug 但是下次分享页面时你会遇到同样的问题

2)向您的网址(https://www.mydomain.com/_product.php?q=123)添加动态参数,而不是您将拥有与此网址相关联的唯一值,但您需要在参数上使用php_get为此特定网址设置og。如果你的价值很少,你可以手动制作,另一方面,如果你有更多的价值或动态价值,你需要一个数据库表来存储数据与链接网址和相关的og,并获取php_get中的值

3)通过重新抓取来以编程方式清除缓存。请参阅:https://developers.facebook.com/docs/payments/product?locale=en_GB#scraping-object

我在我的网站上做过类似的事情,但只是随机生成的值:http://www.paris-web.it/test.html