Строка запроса удалена из открытого URL-адреса графика. - PullRequest
5 голосов
/ 09 января 2012

По этому вопросу: Динамическое создание мета-тегов Facebook Open Graph

Я следовал этим инструкциям, но API, кажется, удаляет мою строку запроса, так что URL, переданный в агрегацию, не содержит никакой моей динамической информации. Если я ввожу URL-адрес со строкой запроса в отладчик, он не удаляется и работает нормально. Я могу подтвердить, что мой метатег og: url также содержит ту же строку запроса, а не только базовый URL. Что я делаю не так?

1 Ответ

5 голосов
/ 25 января 2012

У меня была похожая проблема, и я решил ее следующим образом:

Итак, предположим, что вы выполняете свой пост-запрос, как показано в учебнике , ваш 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;

Этонеправильно.

Вам нужно сделать URL-адрес «симпатичным URL-адресом» и использовать 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];

Помогает ли это?

...