Подтвердить что ты не робот

Как происходит просмотр ссылок Facebook?

При вводе URL-адреса в facebook автоматически появляется функция "отправить ссылку". С большинством веб-сайтов он автоматически загружает выбор изображений, которые он вытаскивает где-то на странице, чтобы идти по ссылке и описанию. кто-нибудь имеет представление о том, как реализовать эту же функцию для нашего собственного сайта без каких-либо FB API и т.д. просто javascript или JQuery?

4b9b3361

Ответ 1

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

Кроме того, это довольно просто: используйте клиентскую библиотеку HTTP для выбранного вами языка для подключения к предоставленному URL-адресу, затем используйте библиотеку разбора HTML для извлечения тега title, определите значительную часть текста в тег body и извлеките тег img, которые кажутся наиболее подходящими.

Как только ваш сервер сможет извлечь информацию о странице, это довольно простое упражнение, чтобы вызвать его через AJAX.

Ответ 2

@Keshan.

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

Он доступен в Github https://github.com/LeonardoCardoso/Facebook-Link-Preview

Facebook Link Preview - PHP + jQuery

Ответ 3

Я думаю, что следующие шаги:

  • Использование Javascript для поиска ссылок в письменном тексте
  • Из найденных ссылок получите последнюю ссылку в тексте (FB показывает только для последней ссылки)
  • Используя AJAX, отправьте эту ссылку на серверную страницу (PHP/ASP/JSP и т.д.).
  • Серверная страница получает требуемые данные (из метатегов), включая
    • Заголовок (желательно открыть график og:title, если отсутствует в <title>
    • Описание (желательно Открыть график og:description, если отсутствует в <meta name="description" ....
    • Изображения (желательно Открыть график og:image, если отсутствует <img src=....
  • В PHP вы можете получить эти данные либо с помощью curl, либо file_get_contents и проанализировать требуемые данные, описанные выше. Не уверен относительно другого языка.
  • Показать результат, найденный в запросе AJAX.

Кроме того, я думаю, что FB хранит данные, найденные в базе данных и 1-й запросы там. Это помогает им получить более быстрый результат, и, следовательно, одна и та же статья поделилась и понравилась генерировать изображение и данные из сохраненных данных.

Вам понадобится Javascript, чтобы показать этот предварительный просмотр во время выполнения (в то время как вы пишете в текстовом поле). Однако, если вам нужно только после публикации данных, это может быть сделано с использованием чистого сервера (вы можете избежать javascript), и после выполнения вышеуказанных шагов просто удалите вызов AJAX.

Ответ 4

Удивительно, что многие службы там делают это. Как отмечал предыдущий комментатор, ваш браузер не может сделать это без элемента сервера.

Итак, рабочий процесс действительно таков:

  • Разберите вставленный текст, чтобы проверить его действительный URL
  • Внесите этот URL-адрес через AJAX в услугу на заказ или просмотрите ее.
  • Служба (моя написана на .Net) загружает страницу в память и анализирует ее с помощью анализатора DOM. Я использую пакет гибкости HTML, который вы могли бы использовать AngleSharp и т.д.
  • Вам необходимо извлечь метатеги Open Graph с (как правило), вернуться к стандартному Meta Title/Description et all.
  • Упакуйте все, что нужно для OG, и верните эту модель через AJAX
  • Поместите возвращаемые значения на экран в виде предварительного просмотра.
  • Если принято, напишите логику, чтобы вставить значения в ваш DB

Если вы не занимаетесь созданием объекта сервера, есть сторонние службы, которые могут выполнять бит поиска:

http://unfurl.oroboro.com/

https://guteurls.de/

Желаем удачи.