使用 URL 查询字符串动态显示 Facebook Open Graph
Dynamically show Facebook Open Graph using URL query string
我正在开发一个网络应用程序,用户可以在其中获得优惠券和类似的东西。我需要使用 Open Graph 使用 Javascript sdk 发布每次用户选择并请求优惠券时的操作。
当您单击优惠券时,它会将您重定向到页面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 上获得了优惠券名称"。
我已经使用 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>
我的代码出了什么问题?谢谢!
此时,最好的办法可能是将您的 url 方案更改为类似 mycouponapp.com/coupondetail/248
这样每张优惠券都有一个唯一的 url。
您可以通过重写 .htaccess 文件中的 url 或更改 PHP 应用程序的 url 方案来做到这一点。
- 使用php或javascript从facebook相册URL中删除多余的部分
- Facebook-Can't提交新的Open Graph类型,提交为灰色.如何提交
- Javascript Facebook Open Graph: Post to wall?
- 使用 URL 查询字符串动态显示 Facebook Open Graph
- Facebook Open Graph故事中的多个对象
- 如何检查用户是否通过Open Graph Facebook订阅其他用户
- Facebook Open Graph Cache Issue
- Facebook Open Graph单页应用程序
- Facebook Open Graph预操作验证
- Facebook Open Graph自定义通知仅对时间线用户可用
- 使用Facebook Open Graph API创建对象
- 我可以给这个人重新贴上标签吗?Facebook Open Graph中个人资料对象类型的名词
- Facebook通过返回的JSON Open Graph请求进行循环
- 当按钮点击时改变facebook Open Graph协议值
- Facebook分享对话框在发布自定义Open Graph故事时无法识别自定义引用对象
- 无需Facebook Connect即可访问Facebook Open Graph
- 使用open graph API,是否有一种方法可以确定用户的哪些朋友有@facebook.com电子邮件地址设置?
- Facebook Open Graph API调用问题需要一个活动访问令牌
- Open Graph用于Facebook共享选择错误的图像
- 无法测试Facebook Open Graph操作