关于这个问题:动态生成Facebook开放图谱元标签
我已经按照教程操作,但是API似乎会删除我的查询字符串,导致传递到聚合中的URL不包含任何动态信息。如果我将带有查询字符串的URL输入调试工具,则不会删除它,并且可以正常运行。我可以确认我的og:url元标签也包含相同的查询字符串,而不仅仅是基本URL。我做错了什么?
我遇到了类似的问题,并通过以下方式解决:
假设您正在按照教程中所示进行POST请求,那么您的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);
}
}
);
}
既然你说你想要动态生成meta标签,那么你很可能会在URL中添加一个参数(passString),像这样:
passString = '&object=http://yoursite.com/appnamespace/object.php?user=' + someuser;
这是错误的。
你需要做的是将网址变成“美化的网址”,并使用htaccess解密它。因此:
passString = '&object=http://yoursite.com/appnamespace/object/someuser';
http://yoursite.com/appnamespace/object/object.php?user=someuser
然后,您可以使用GET在PHP中存储用户参数,并将其插入到您喜欢的元标记中。如果您想知道,在og:url元标记的内容中将是:
$url = 'http://yoursite.com/appnamespace/object/object.php?user=' . $_GET[$user];