#php #facebook #facebook-opengraph #share-open-graph
Вопрос:
Я использую php-файл для загрузки изображений на свою веб-страницу, так как они размещены за пределами webroot. Все работает хорошо, кроме того, что Facebook не регистрирует изображение в og:image
метатеге, когда они загружаются таким образом.
По иронии судьбы, рассматриваемая страница https://www.molecularmagic.net/hosting/the.computing.cafe/www/index.php?t=3b3c55
Метатег, о котором идет речь, является:
<meta property="og:image" content="https://www.molecularmagic.net/hosting/the.computing.cafe/www/file.php?f=feature_image.png">
Заголовки, отправленные вместе с изображением, являются:
accept-ranges: bytes
cache-control: public, max-age=604800
content-length: 243688
content-type: image/png
date: Sun, 06 Jun 2021 22:56:58 GMT
expires: Thu, 19 Nov 1981 08:52:00 GMT
last-modified: Sun, 06 Jun 2021 23:05:22 0100
server: LiteSpeed
vary: User-Agent
В этом случае отладчик общего доступа Facebook выдает мне эту ошибку:
Provided og:image URL, https://www.molecularmagic.net/hosting/the.computing.cafe/www/file.php?f=featured_image.png could not be processed as an image because it has an invalid content type
Для других страниц og:image
тег является:
<meta property="og:image" content="http://openmediavault/the.computing.cafe/www/images/feature_image.png?1623012347">
Цифры после имени filemtime
файла предназначены для того, чтобы заставить FB перезагрузить изображение, если я его изменю. Заголовки, отправленные с этим изображением, являются:
accept-ranges: bytes
cache-control: public, max-age=604800
content-length: 183886
content-type: image/png
date: Sun, 06 Jun 2021 22:27:30 GMT
expires: Sun, 13 Jun 2021 22:27:30 GMT
last-modified: Sun, 06 Jun 2021 20:46:04 GMT
server: LiteSpeed
vary: User-Agent
…и отладчик общего доступа Facebook правильно отображает изображение.
Я очень старался сделать так, чтобы заголовки при отправке изображения file.php
были как можно ближе к заголовкам, отправленным из «реального» файла изображения.
Я знаю, что это вызвано отображением изображения, file.php
но я не понимаю, почему Facebook сказал бы мне, что изображение имеет недопустимый тип контента, когда заголовки выглядят одинаково.
Может ли кто-нибудь предположить, почему это может быть так?
Комментарии:
1. проверка на вменяемость.. перейдите к изображению
2. не для меня я получаю
File not found: feature_image.png
3. изображение должно быть доступно для горячей ссылки, бот, скорее всего, видит текст, а не изображение, один и тот же сервер/ip не будет удалять как сайт, так и изображения и т. Д
4. Черт. В этом есть смысл. Я думаю, что то, что я хочу сделать, тогда невозможно?
5. сетевая квота в настоящее время дешева, нет смысла препятствовать доступу к изображениям, вы даже можете развернуть сервер изображений/файлов
http://images.openmediavault.com/the.computing.cafe/filename.jpg
и использовать cdn для извлечения источника, который извлекается с исходного сайта, затем запустите cloudflare спереди, тогда вы, вероятно, обнаружите, что 90% трафика кэшируется и даже не попадает на ваш сервер
Ответ №1:
Исправлено — спасибо. Было полностью решено путем создания горячей ссылки на изображение метаданных.