Как работает функция ссылок в Facebook? - PullRequest
2 голосов
/ 13 января 2012

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

Какой процесс происходит для этого?

Ответы [ 4 ]

4 голосов
/ 13 января 2012

Я предполагаю, что вы имеете в виду, когда вы делитесь ссылкой на Facebook. Facebook находит заголовок в теге <title> веб-сайта. Описание берется либо из метатега описания в HTML-документе, либо из текста на веб-сайте. Поскольку это не совсем надежно, вы можете редактировать описание, прежде чем опубликовать ссылку. Я думаю, что то же самое относится и к названию.

Изображение выбирается из изображений, которые Facebook может найти в документе по указанной вами ссылке. Вы также можете выбрать, какое изображение использовать при публикации ссылки, или можете не отображать изображение.

Я не знаю больше подробностей об этом, чем то, что я написал выше, и я также не смог найти никакой документации по этой теме. Вышесказанное - в значительной степени то, что вам нужно знать, чтобы в любом случае использовать эту функцию и соответственно планировать любой веб-сайт, которым вы планируете публиковать в Facebook.


Технический термин для извлечения данных из вашей ссылки: Соскоб в Интернете . Это просто вопрос получения необработанного HTML, если сайт, который вы хотите очистить (вы можете использовать CURL для этого или PHP file_get_content или множество других способов), а затем поискать данные, которые вы хотите извлечь.

Извлечь заголовок легко. Если бы вы использовали регулярные выражения, вы могли бы написать такое, которое извлекает контент между тегами <title></title> веб-сайта, вот простой пример: (?<=(\<title\>))(.*)(?=</title>)

Подобные регулярные выражения можно использовать для поиска всех ссылок на изображения на сайте, а также образцов контента.

2 голосов
/ 13 января 2012

Серверы Фейсбука просматривают опубликованную ссылку и извлекают из нее определенные данные.Это может быть заголовок, изображение или какой-либо текст в качестве резюме.То, как серверы решают, что взять и что игнорировать, зависит от того, как построен HTML.Чтобы разработчики могли убедиться, что серверы Facebook видят правильную информацию og:tags, размещенную на их страницах. Примеры могут быть:

  • og: title - Названиепредварительного просмотра ссылки.
  • og: image - URL изображения, который будет использоваться в предварительном просмотре.

Они выглядят так в HTML-разметке страницы:

<meta property="og:title" content="The Rock"/><meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>


Если вы хотите увидеть это в действии, вы можете использовать Debugger Tool , предоставленный Facebook.Этот инструмент показывает вам точно , как Facebook просматривает URL-адрес, какую информацию он видит и если возникают проблемы с просмотром информации URL-адреса, он также привлечет ваше внимание к ним.

YouВы можете прочитать больше о Open Graph Protocol и о том, как его использовать на Facebook здесь .

0 голосов
/ 13 января 2012

Ах, да, хорошая ссылка в Facebook. Я изучал, как это сделать, когда разрабатывал аналогичную функцию для своего сайта projectclimb.com

По сути, он выполняет эти шаги

1) Клиент запрашивает (через AJAX) URL-адрес для загрузки / вызова на сервере facebook через AJAX

2) Сервер Facebook выполняет запрос http get, затем анализирует возвращенный HTML и удаляет все, кроме заголовка, тегов описания, а также любых изображений.

3) Сервер Facebook переупаковывает эту информацию и отправляет ее обратно (через AJAX) клиенту, который отображает хороший элемент управления со всей аккуратно отображаемой информацией

Звучит сложнее, чем на самом деле ... не заняло много времени, чтобы повторить это для моего сайта.

0 голосов
/ 13 января 2012

Он получает эту информацию из источника страницы, на которую вы ссылались.

Заголовок страницы, который находится между тегами title, и он берет первое изображение, отображаемое на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...