OpenGraph мета для социального обмена, не отображая изображение на Facebook и т. Д. - PullRequest
0 голосов
/ 08 июня 2018

Возможно, похоже на этот вопрос , но выкладываю новый из-за прерывистого характера моей проблемы.Хотя я попробовал многие из предложений в этом посте.

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

При обменеURL-адрес сервисов, использующих данные OG, которые изображение не получает, но это случается иногда.В частности, это происходит в Facebook, но когда это происходит с определенным изображением, другие службы OG (например, WhatsApp) столкнутся с той же проблемой, заставляя меня поверить, что проблема связана с самим изображением или метаданными OG, а не с выполнением FacebookЭто.Это не случай, когда скребок сделает свое дело, это продолжается уже несколько недель, и я часто перекраиваюсь.

Когда это происходит, я получаю следующее от отладчика Facebook:

  • Предупреждения о свойствах Twitter и «Несоответствие метаданных парсера» в отношении свойств Twitter
  • Уведомление о перенаправлении на тот же URL с косой чертой
  • Подробная информация онайденные необработанные теги
  • Построенные данные на основе необработанных тегов
  • Пример того, что пользователи увидят, когда они поделятся URL-адресом

С необработанными тегами,построенные данные и пример, в этом нет ничего необычного, и в отчете не было выявлено других ошибок.По сути, отладчик говорит, что все в порядке, а также показывает изображение, которое я ожидаю показать.Но когда URL-адрес фактически передается, извлеченная информация не включает изображение.

Мое исследование показало, что Facebook очень требователен к информации, которая ему нужна для каких-то действий, и я должен предоставить как можно больше свойств.Итак, в настоящее время моя мета выглядит примерно так (в зависимости от страницы):

<title>Examplefest 2018 - Lineup</title>
<meta name="description" content="An outstanding lineup" />
<meta property="og:title" content="Examplefest 2018 - Lineup" />
<meta property="og:description" content="An outstanding lineup" />
<meta property="og:url" content="https://example.com/lineup/" />
<meta property="og:type" content="article" />
<meta property="fb:app_id" content="15***********94" />
<meta property="og:image" content="http://example.com/_images/social-shares/lineup-social-share.jpg" />
<meta property="og:image:url" content="http://example.com/_images/social-shares/lineup-social-share.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="420" />
<meta property="og:image:alt" content="Examplefest 2018 - Lineup" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:title" content="Examplefest 2018 - Lineup" />
<meta property="twitter:site" content="@examplefest" />
<meta property="twitter:creator" content="@examplefest" />
<meta property="twitter:description" content="An outstanding lineup" />
<meta property="twitter:image" content="http://example.com/_images/social-shares/lineup-social-share.jpg" />
<meta property="twitter:image:alt" content="Examplefest 2018 - Lineup" />

Вещи, которые я пробовал (в различных комбинациях) до сих пор, основываясь на моих исследованиях:

  • og:url - как с косой чертой, так и без нее
  • og:image:url - как с этим, так и без него
  • og:image:secure_url - с этим и без использования при доставке изображенияHTTPS
  • <html prefix="og: http://ogp.me/ns#"> - как с, так и без использования этого
  • Принудительно доставлять содержимое папки с изображениями по HTTP вместо HTTPS
  • Использовать вместо этого .jpg.файла .png (это работало в одном случае)
  • Уменьшены исходные размеры и размер файла изображения, теперь оно составляет 800x420 и 342,7 КБ (это также, возможно, работает в одном случае)
  • Провереночто у меня нет проблем с моим SSL-сертификатом при использовании SSL Shopper's SSL Checker

Для принудительной доставки этих изображений через HTTP вместо HTTPS я использовал .htaccess.Я не получаю никаких ошибок с этим в своих журналах, в указанной папке нет подпапок, и отладчик Facebook подтверждает, что полученное изображение было по HTTP.Мой .htaccess выглядит следующим образом (с кучей постоянных и временных перенаправлений в конце):

Options +FollowSymLinks
RewriteEngine On

#Rewrite the WWW out of urls
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,NE,R=301]

#Rewrite everything to https except the contents of specific folders
RewriteCond %{HTTPS} !on
RewriteCond %{THE_REQUEST} !\s/+_images/social-shares[/?\s] [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

#Force contents of specific folders to be HTTP and not HTTPS
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} \s/+_images/social-shares[/?\s] [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

#Allow cross site resources
Header add Access-Control-Allow-Origin "*"

Я чувствую, что перепробовал все возможные варианты и ничего не работает.Это сбивает с толку, что это только прерывистый, а также;когда образ работает, он работает для всех сервисов OG, а когда происходит сбой, он отказывает для всех сервисов OG.Изменение изображения на другое иногда работает, а иногда нет.Фактически, это имеет примерно такую ​​же вероятность показа, как и первое изображение.Может ли это означать, что в самом изображении есть некоторые свойства, которые могут быть важны для этого процесса?Изменение изображения на что-то другое на самом деле не вариант, когда у меня есть конкретное изображение, которым я хочу поделиться.

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

...