У меня есть сайт, к которому я добавил необходимые теги OpenGraph <meta>, но превью Onebox не отображается. Валидация OpenGraph проходит успешно, поэтому я сомневаюсь, что проблема в разметке.
(Я не могу отправить ссылку на валидатор, так как я новый пользователь)
На стороне сервера я вижу, что страницы действительно отдаются роботу Discourse:
User-Agent: 'Discourse Forum Onebox v3.3.0.beta1-dev'
IP Address: 2602:fd3f:3:204:0:242:ac11:2d
но ссылки просто не отображаются:
Я предположил, что проблема может быть в том, что мы возвращаем 505 HTTP Version Not Supported для запросов HEAD, основываясь на этой теме. Поэтому я исправил наш сервер, чтобы он возвращал формальный ответ 200 OK для метода HEAD:
Не могли бы вы проверить, не блокирует ли ваш сервер запросы? Судя по тому, что я вижу, я получаю код ошибки 400 (когда смотрю на ответ Discourse fetch).
Понятно, я перенастроил сайт так, чтобы HEAD-запросы обрабатывались так же, как GET-запросы.
На сайте действует политика безопасности, которая возвращает 400, если клиент не отправляет строку User-Agent, начинающуюся с "Discourse Forum Onebox", и заголовок Accept-Language: *. Мне удалось пройти проверку с помощью curl со следующими настройками:
$ curl -v -I --http1.1 \
-A 'Discourse Forum Onebox v3.3.0.beta1-dev' \
-H 'Accept-Language: *' \
https://swiftinit.org -o /dev/null