我已经创建了一个带有订阅的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/