关于这个问题:Dynamic generation of Facebook Open Graph meta tags
我已按照这些说明操作,但api似乎删除了我的查询字符串,因此传入聚合的网址不包含任何动态信息。如果我将带有查询字符串的url输入到调试器中,它不会删除它并且工作正常。我可以确认我的og:url元标记也包含相同的查询字符串,而不仅仅是基本网址。我做错了什么?
答案 0 :(得分:5)
我遇到了类似的问题并解决了这个问题:
因此,假设您正在执行tutorial中显示的帖子请求,那么Javascript可能看起来像这样:
function postNewAction()
{
passString = '&object=http://yoursite.com/appnamespace/object.php';
FB.api('/me/APP_NAMESPACE:ACTION' + passString,'post',
function(response) {
if (!response || response.error) {
alert(response.error.message);
}
else {
alert('Post was successful! Action ID: ' + response.id);
}
}
);
}
既然你说要动态生成元标记,你可能会在其中添加一个参数到url(passString):
passString = '&object=http://yoursite.com/appnamespace/object.php?user=' + someuser;
这是错误的。
您需要做的是将网址设为'漂亮网址'并使用htaccess对其进行解密。所以:
passString = '&object=http://yoursite.com/appnamespace/object/someuser';
然后您的htaccess文件会告诉您的网站该网址实际上等同于
http://yoursite.com/appnamespace/object/object.php?user=someuser
然后你可以使用GET用php存储用户参数,然后将它插入你的meta标签中。
如果您想知道,在og:url元标记的内容将是:
$url = 'http://yoursite.com/appnamespace/object/object.php?user=' . $_GET[$user];
这有帮助吗?