Onebox и Amazon не работают (у меня)

Я постоянно получаю ошибку: «Извините, нам не удалось сгенерировать предварительный просмотр для этой веб-страницы, так как не был найден следующий тег oEmbed / OpenGraph: description».

Что я уже проверил:

  • Все протестированные ссылки содержат мета-тег name=description.
  • Ссылки создают валидный onebox на meta.discourse.

Таким образом, проблема не в странице Amazon.

Предпринятые шаги по устранению:

  • Система обновлена до версии 3.4.0.beta4-dev.
  • Приложение пересобрано со всеми отключенными плагинами (изначально установлены: discourse-adplugin, discourse-affiliate, discourse-subscriptions, discourse-yearly-review, discourse-whos-online, discourse-data-explorer и DiscoTOC).
  • Приложение пересобрано со всеми отключенными компонентами (изначально установлены: header submenus, easy responsive footer, discotoc и discourse ebay affiliate).
  • Сервер перезагружен.
  • Пробовал разные браузеры.

Onebox не извлекает информацию со страницы, хотя примерно в 1 случае из 20 он успешно создаётся. Это крайне раздражает.

Вопросы:

  1. Где можно найти логи и информацию об ошибках для onebox?
  2. Похоже, у onebox есть механизм кэширования. Как очистить кэш?

Любые предложения по поиску причины и способа решения будут очень полезны.

Заранее спасибо.

Я удалил все пользовательские настройки плагинов и компонентов, перечисленных выше. Пересобрал сервер и перезагрузил его. (Я знаю, что это не Windows, но я пробую всё.)

Теперь у меня работают 9 из 10 Amazon onebox-ов.

Мы начнём добавлять по одному компоненту и плагину, чтобы выяснить, что вызывает проблемы.

Любая помощь в проведении детальной диагностики, выходящая за рамки приведённой ниже, была бы полезна:

Из консоли rails:

[1] pry(main)> Oneboxer.invalidate 'https://www.amazon.ca/Thud-Terry-Pratchett/dp/055216769X'
=> 0

[2] pry(main)> Oneboxer.onebox 'https://www.amazon.ca/Thud-Terry-Pratchett/dp/055216769X'
=> "<aside class=\"onebox amazon\" data-onebox-src=\"https://www.amazon.ca/Thud-Terry-Pratchett/dp/055216769X\">
  <header class=\"source\">

      <a href=\"https://www.amazon.ca/Thud-Terry-Pratchett/dp/055216769X\" target=\"_blank\" rel=\"nofollow ugc noopener\">amazon.ca</a>
  </header>

  <article class=\"onebox-body\">
    <img src=\"https://m.media-amazon.com/images/I/919CVPkFxjL._SL1500_.jpg\" class=\"thumbnail\">

<h3><a href=\"https://www.amazon.ca/Thud-Terry-Pratchett/dp/055216769X\" target=\"_blank\" rel=\"nofollow ugc noopener\">Thud!: (Discworld Novel 34) : Pratchett, Terry: Amazon.ca: Books</a></h3>



<p>Thud!: (Discworld Novel 34) : Pratchett, Terry: Amazon.ca: Books</p>

<p>
  
  
  
  
  <strong></strong>
</p>

  </article>

  <div class=\"onebox-metadata\">
    
    
  </div>

  <div style=\"clear: both\"></div>
</aside>
"

Вы можете ознакомиться с тем, что доступно в классе Oneboxer.

Во вторую очередь, существуют также InlineOneboxers, например Thud!: (Discworld Novel 34) : Pratchett, Terry: Amazon.ca: Books

Аналогично вы можете использовать

InlineOneboxer.invalidate(url)
InlineOneboxer.lookup(url)

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

Затем я установил discourse-adplugin, и сразу же вернулись 9 сбоев из 10 попыток. Когда я его отключил, несколько ссылок заработали, но затем снова возник режим сбоя, при котором описание не получалось.

Я удалил discourse-adplugin из app.yml и пересобрал приложение. После перезагрузки сервера ссылки Amazon снова начали работать через onebox.

Должен быть какой-то конфликт в сочетании используемых мной плагинов и компонентов. Какие есть варианты для отладки этой проблемы?

После 12 часов устранения неполадок, комбинированного тестирования плагинов и компонентов, а также множества пересборок, система в данный момент работает. Мы посмотрим, как она будет вести себя в ближайшие пару недель.

Единственное фундаментальное изменение — это порядок плагинов в файле app.yml. Плагин discourse-adplugin расположен сразу после docker_manager.

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-adplugin
          - git clone https://github.com/discourse/discourse-affiliate
          - git clone https://github.com/discourse/discourse-subscriptions
          - git clone https://github.com/discourse/discourse-yearly-review
          - git clone https://github.com/discourse/discourse-whos-online
          - git clone https://github.com/discourse/discourse-data-explorer

Я не думал, что порядок плагинов имеет значение, но это так. Когда discourse-adplugin находился в последних двух позициях, ссылки на Amazon не работали с Onebox.