Экранирует ли LinkedIn Scrapping символы амперсанда в результирующем obsed JSON? - PullRequest
0 голосов
/ 08 ноября 2019

Когда я добавляю и сохраняю один из URL-адресов с одного из сайтов, на котором работает наша компания, в мой раздел LinkedIn About Summary (с помощью кнопки Link), вы в итоге правильно отображаете изображение миниатюры видео. сайт отображается как встроенный контент, но в конечном итоге вы также видите некорректный URL нашего видео в кнопке View модального окна, которая появляется при нажатии на миниатюру видео раздела about. Проблема с результирующим открытым URL-адресом заключается в том, что в нем экранированные символы экранированы следующим образом: &.

Я изучил следующую документацию о том, как LinkedIn получает теги oEmbed / JSON изисходный код страниц, и этот метод, по-видимому, подходит для удаления исходного кода наших страниц, поскольку удаление метатега и повторная вставка ссылки в разделе about приводит к открытию другого URL-адреса в кнопке View (другим методом, который яя не знаю) и, возвращая метатег и снова вставляя его в раздел about, снова показывает предыдущий неверно сформированный URL.

Я создал тестовый сайт, чтобы показать этот случай. URL-адрес этого сайта следующий:

http://site-566738.bcvp0rtal.com/

Метатег в исходном коде сайта выглядит следующим образом:

<link rel="alternate" type="application/json+oembed" href="https://oembed.brightcove.com/?format=json&amp;maxwidth=480&amp;maxheight=270&amp;url=http%3A%2F%2Fplayers.brightcove.net%2F6021289027001%2Fdefault_default%2Findex.html%3FvideoId%3D6075281345001" title="Ocean test">

Переход к URL-адресу href, который имеет этот тег, показываетследующий JSON:

{
  type: "video",
  version: "1.0",
  provider_name: "Brightcove",
  provider_url: "https://players.brightcove.net/pages/v1/index.html?accountId=6021289027001&playerId=default&videoId=6075281345001",
  title: "Ocean test",
  width: 480,
  height: 270,
  thumbnail_url: "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/6021289027001/186388f7-97a0-44fb-bd59-3744e7a16cbd/main/1280x720/15s200ms/match/image.jpg",
  html: "<iframe class="brightcove-embed" src="https://players.brightcove.net/pages/v1/index.html?accountId=6021289027001&playerId=default&videoId=6075281345001&mode=iframe" width="480" height="270" scrolling="no" frameborder="0" allowfullscreen></iframe>",
}

Этот JSON фактически отправляется внешней службой, которую мы настроили для возврата действительных данных oEmbed по запросу, и был протестирован и утвержден в других сценариях внедрения.

Отэтот JSO, LinkedIn получает URL-адрес миниатюрного видео, а также URL-адрес видео (тот, что в атрибуте src в iframe, определенном в свойстве html JSON), но, как вы можете видеть, здесь мы неэкранирование символов амперсанда, и все же каким-то образом это отображается как &amp; в кнопке View. В результате URL-адрес в кнопке View отправляет пользователя на нерабочий URL-адрес в наших службах, и в итоге он отображается на странице About Summary в профиле LinkedIn (обратите внимание на экранированные символы):

http://players.brightcove.net/pages/v1/index.html?accountId=6021289027001&amp;playerId=default&amp;videoId=6075281345001&amp;mode=iframe

URL-адрес без экранированных символов может быть правильно интерпретирован нашими службами, и видео также может быть правильно просмотрено.

Есть ли способ для вашего метода не избежать этогосимволы амперсанда?

Спасибо всем заранее.

...