Bax*_*ter 5 query-string facebook-opengraph
关于这个问题:动态生成Facebook Open Graph元标记
我已按照这些说明操作,但api似乎删除了我的查询字符串,因此传递给聚合的url不包含任何动态信息.如果我将带有查询字符串的url输入到调试器中,它不会将其删除并且工作正常.我可以确认我的og:url元标记也包含相同的查询字符串,而不仅仅是基本网址.我究竟做错了什么?
我遇到了类似的问题并解决了这个问题:
因此,假设您正在按照教程中显示的那样执行发布请求,那么您的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);
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
既然你说要动态生成元标记,你可能会在其中添加一个参数到url(passString):
passString = '&object=http://yoursite.com/appnamespace/object.php?user=' + someuser;
Run Code Online (Sandbox Code Playgroud)
这是错的.
你需要做的是使网址成为"漂亮的网址"并使用htaccess来解密它.所以:
passString = '&object=http://yoursite.com/appnamespace/object/someuser';
Run Code Online (Sandbox Code Playgroud)
然后你的htaccess文件将告诉你的网站该网址实际上等同于
http://yoursite.com/appnamespace/object/object.php?user=someuser
Run Code Online (Sandbox Code Playgroud)
然后你可以使用GET来存储用户参数和php,然后将它插入你的meta标签.
万一你想知道,在og:url meta标签的内容将是:
$url = 'http://yoursite.com/appnamespace/object/object.php?user=' . $_GET[$user];
Run Code Online (Sandbox Code Playgroud)
这有帮助吗?