查询条从打开的图形URL中删除

Bax*_*ter 5 query-string facebook-opengraph

关于这个问题:动态生成Facebook Open Graph元标记

我已按照这些说明操作,但api似乎删除了我的查询字符串,因此传递给聚合的url不包含任何动态信息.如果我将带有查询字符串的url输入到调试器中,它不会将其删除并且工作正常.我可以确认我的og:url元标记也包含相同的查询字符串,而不仅仅是基本网址.我究竟做错了什么?

bra*_*ith 5

我遇到了类似的问题并解决了这个问题:

因此,假设您正在按照教程中显示的那样执行发布请求,那么您的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)

这有帮助吗?