查询字符串已从开放图谱URL中移除。

5
关于这个问题:动态生成Facebook开放图谱元标签

我已经按照教程操作,但是API似乎会删除我的查询字符串,导致传递到聚合中的URL不包含任何动态信息。如果我将带有查询字符串的URL输入调试工具,则不会删除它,并且可以正常运行。我可以确认我的og:url元标签也包含相同的查询字符串,而不仅仅是基本URL。我做错了什么?

我也遇到了同样的问题。你最终解决了吗? - bradleygriffith
刚刚在这里解决了同样的问题:http://stackoverflow.com/questions/15378534/facebook-post-with-parameters/15387232#15387232 - deko
1个回答

5

我遇到了类似的问题,并通过以下方式解决:

假设您正在按照教程中所示进行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';

然后你的htaccess文件会告诉你的网站,该URL实际上相当于什么。
  http://yoursite.com/appnamespace/object/object.php?user=someuser

然后,您可以使用GET在PHP中存储用户参数,并将其插入到您喜欢的元标记中。如果您想知道,在og:url元标记的内容中将是:

  $url = 'http://yoursite.com/appnamespace/object/object.php?user=' . $_GET[$user];

这对你有帮助吗?

帮了我很多...天啊,他们这个愚蠢的“特性”让人很烦恼。 - Kyle Hotchkiss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接