我已经创建了一个带有订阅的Facebook应用。

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

即使我使用新值更新了https://www.mydomain.com/_product.php中的所有数据,这一切仍与我第一次设置数据时的方式相同。我什至注销并重新登录,但仍未反映出任何更改。

我什至清空了_product.php页面并将其上传到服务器,订阅仍然有效,并显示5.00 USD /周,图像为空白。

有想法该怎么解决这个吗?

我在主页上有以下代码:

<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>

最佳答案

如果不是半永久性的,关于共享内容的脸书页面会有很长的缓存:
3个选项是可能的:

1)尝试清除以下页面上的页面缓存:https://developers.facebook.com/tools/debug
但是下次共享页面时,您将遇到同样的问题

2)在您的网址(https://www.mydomain.com/_product.php?q=123)中添加一个动态参数,您将获得一个与此网址相关联的唯一值,但是您需要使用参数php_get为该特定网址设置og。如果值很少,则可以手动进行设置;另一方面,如果值或动态值更大,则需要一个DB表来存储带有链接url和关联的og的数据,并在php_get中获取该值

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

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

关于javascript - Facebook og数据未更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27457595/

10-12 00:00
查看更多