【发布时间】:2012-06-20 21:54:07
【问题描述】:
我正在开发一个网络应用程序,用户可以在其中获得优惠券和类似的东西。每次用户选择并请求优惠券时,我都需要使用 Javascript sdk 通过 Open Graph 发布一个操作。
当您点击优惠券时,它会将您重定向到页面coupondetail.php?cid=248(其中“Cid”是优惠券 ID)。实际上我用 PHP 个性化了 og 元标记:这样 Facebook 应该为每个共享的 ?cid 抓取不同的内容。
这实际上是我使用 PHP 个性化它们的方式: (Mycouponapp 是一个示例名称!)。
<head>
<meta charset="ISO-8859-1">
<title>Coupons</title>
<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# mycouponapp:
http://ogp.me/ns/apps/mycouponapp#">
<meta property="fb:app_id" content="*appid*" />
<meta property="og:type" content="mycouponapp:reward"/>
<meta property="og:title" content="<?php echo $couponname; ?>" />
<meta property="og:image" content="http://www.mycouponapp.com/<?php echo $couponimgurl; ?>" />
<meta property="og:description" content="<?php echo $couponname; ?>" />
<meta property="og:url" content="http://www.mycouponapp.com/coupondetail.php?cid=<?php echo $cid; // coupon id ?>">
十天前我在测试网站,我设置了一个静态的og:title,称之为“样品奖励”。即使我更改了代码,今天当我使用 Javascript 发布操作时,它仍然显示“Matteo 在 Mycouponapp 上获得了示例奖励”,而不是显示“Matteo 在 Mycouponapp 上获得 couponname”。
我已经使用 Facebook 调试工具尝试再次抓取内容,但它不起作用(即使调试工具显示正确的优惠券详细信息!)
此外,如果我点击“示例奖励”文本,我将被重定向到 http://www.mycouponapp.com/coupondetail.php?rid=,并且您可以看到末尾没有 Cid。
我真的不明白为什么。我剪辑了我的 JavaScript 代码:也许问题就出在这上面! Facebook JS SDK 在此之前已经加载。
<script>
function postCoupon()
{
FB.login(function(response) {
if (response.authResponse) {
FB.api(
'/me/_AppName_:get?reward=http://www.mycouponapp.com/coupondetail.php?cid=<?php echo $rid; ?>',
'post',
function(response) {
if (!response || response.error) {
console.log(response.error);
} else {
alert('Pook was successful! Action ID: ' + response.id);
}
});
}
}, {scope: 'publish_actions'});
}
</script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '_App Id_', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
</script>
我的代码有什么问题?谢谢!
【问题讨论】:
-
不幸的是,我想没有,因为我在调试器中没有任何警告,我发布了 100 多个操作来尝试强制更新。
-
您的意思是您发布的帖子不超过 100 条?还是你做到了?如果您这样做了,则无法再更改该 URL 上的标题
-
不幸的是我做到了。但即使更改了 Rid(以及相应的 og 元标记),旧消息仍然存在。
-
看起来很奇怪。我重命名了 .php 文件,但在发布操作时仍然看到旧文本。已尝试使用其他 Facebook 帐户。
标签: php javascript facebook facebook-javascript-sdk facebook-opengraph