我创建了一个订阅的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>
答案 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