Facebook URL Linter извлекает данные для неправильной страницы - PullRequest
4 голосов
/ 20 июля 2011

Моя команда недавно запустила веб-приложение, которое активно использует кнопку «Мне нравится» в Facebook.Большинство из них работают нормально, но некоторые из «Нравится» URL-адресов неправильно распознаются Facebook или его URL Linter.Эти URL-адреса предназначены для страницы в нашем приложении, которая перенаправляет на соответствующую страницу в приложении Facebook ...

Пример URL-адреса:http://www.3mframeworks.com/pages/redirect?url=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17

URL-адрес Facebook Linter возвращает данные, как если бы параметр "id" отсутствовал:https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D17

Другие парсеры Open Graph возвращают правильные данные:og: it: http://ogit.heroku.com/inspect?url=www.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D34
OpenGraph.In: http://www.opengraph.in/?url=www.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D34&format=html

Я часами искал объяснение ...

  1. В документации Facebook в разделе "Редактирование мета-тегов" указано:
    • "Обратите внимание, что og: title и og: type редактируются только первоначально - послеВаша страница получает 50 лайков, заголовок становится фиксированным, а после того, как ваша страница получает 10 000 лайков, тип становится фиксированным. " Количество моих лайков близко к этим числам.
    • «Чтобы изменения были отражены в Facebook, вы должны принудительно удалить свою страницу. Страница очищается, когда администратор страницы нажимает кнопку« Мне нравится »или когда URL-адрес вводится в URL-адрес Facebook Linter.страницу, которую нужно очистить, свернув линтера. " Я безуспешно попробовал все три метода.
  2. Кнопка Facebook Like- извлекает «неправильное» изображение предполагает, что указание URL не сбрасывает кэш, как утверждает Facebook.
  3. Facebook Open Graph не очищает кэш предполагает, что это может быть Facebook CACЭто исправится через неизвестный промежуток времени.
  4. Facebook как кнопка с неправильным URL предлагает подождать 24-32 часа для сброса кеша Facebook. Прошло более 64 часов с тех пор, как мои теги Open Graph были установлены в последний раз.
  5. Почему Facebook возвращает неправильную страницу (влияет на Facebook Like и Поделиться URL)? предлагаетчто любой URL, предоставленный Facebook (например, с помощью кнопки «Мне нравится») перед публикацией, должен быть изменен. Я попытался изменить URL-адрес, переименовав параметр id, но безуспешно.

Наиболее вероятным виновником является кеширование в Facebook, но это уже давно подозрительно, так как этот сайтЯ надеюсь, что кто-то знает хитрость, чтобы получить эту работу как можно скорее.Спасибо!

Ответы [ 2 ]

5 голосов
/ 20 июля 2011

Некоторая часть в Graph API Facebook и URL Linter удаляет все, кроме первого, из нескольких параметров URL.

График API

  1. Когда строка параметра «? V = videos & id = 17», «id» теряется:
    https://graph.facebook.com/http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17
  2. Когда строка параметра «? Id = 17 & v = videos», «v» теряется:
    https://graph.facebook.com/http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fid%3D17%26v%3Dvideos
  3. Этого не происходит, если параметр Graph "id" объявлен явно:
    https://graph.facebook.com/?id=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17

К сожалению, третий момент не помогает моей ситуации: у меня нет прямого доступа к графику, поэтому я не могу просто вставить "? Id =".

URL Linter

Для моего приложения все параметры необходимы для отображения правильных метатегов Open Graph, и результаты подтверждают мое обнаружение:

  1. Когда вложенная закодированная строка параметров имеет вид «? V = videos & id = 17», теги Open Graph отображаются для «3M Couple Speak Video Contest». Это ожидаемое поведение при отсутствии параметра «id»:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D17
  2. Когда вложенная закодированная строка параметров имеет вид «? Id = 17 & v = videos», теги Open Graph отображаются для «3M Couple Speak Translation Contest». Это ожидаемое поведение, когда "v = videos" отсутствует:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fid%253D17%2526v%253Dvideos
  3. Этого не происходит с не вложенными, некодированными строками параметров:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17
  4. Для других анализаторов Open Graph переключение порядка вложенных закодированных параметров дает те же данные, что является правильным:

К сожалению, опять же, третий момент не помогает моей ситуации: нам нужно вложить и закодировать URL.

Это объясняет плохие данные, которые я вижу, и почему это происходит только с URL-адресами с несколькими параметрами. Я отправил сообщение об ошибке в Facebook.

1 голос
/ 20 июля 2011

Источник iframe на этой странице в Фейсбуке выглядит так:

couplespeak-3m-production.heroku.com / видео

и эта страница содержит теги, которые отображаются в Facebook Linter.

<meta content='3M Couple Speak Video Contest' property='og:site_name' /> 
<meta content="3M Couple Speak Video Contest" property="og:title" /> 
<meta content="website" property="og:type" /> 
<meta content="http://apps.facebook.com/couplespeak?v=videos" property="og:url" /> 
<meta content="http://www.3mframeworks.com/images/video_background.jpg" property="og:image" /> 
<meta content="100001154487117" property="fb:admins" /> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...