
Комментарии 33
Фича InstantView есть только на мобильных платформах :-) Да, звучит глупо, но я реально убил некоторое время, пытаясь понять, почему у меня он не включается на десктопном клиенте.
считаю это боооольшой недоработкой телеги, но увы со мной согласно так мало людей что видимо чуда не случится.
Ссылки с telegra.ph открываются в instant view, например посты одного канала в десктопной версии выглядят так:

OS: Windows 10, APP: Telegram Desktop 4.16.6

А вообще отключить эти превьюшки при отправке допустим с компа?
Как написал в посте - результат кэшируется, если ссылка была обработана ботом, то так и будет отправляться дальше любыми пользователями с любых клиентов. Но можно сделать параметры URL и ими контролировать отдачу шаблона боту, например ссылки типа https://example.com/post/?iv=0 , таким образом и кэш будет инвалидирован (так как ссылка поменялась), так и можно сделать логику, что отдавать боту. Можно кстати вообще ничего не отдавать, тогда не будет даже превью ссылки обычной.
Я не хочу чтобы вставлялись превьюшки при отправке мной ссылок на левые сайты, ибо это бесит.
При отправке превьюшку можно удалить, у меня по крайней мере так:

По умолчанию наверное не настроить никак. Можете разве что открыть feature request или пропатчить самому :-)
Попробуйте обновить кэш бота с помощью @WebpageBot
На десктопе на маке тоже работает instantview
Самое главное: Wordpress -> WordPress, поправьте, пожалуйста
а кросс-постинг на teletype нужен или можно просто при виде бота телеграм формировать на своем домене нужного вида шаблон с мета-тегом и телега это будет проглатывать?
Ничего внешнего не требуется, нужный шаблон формируется на стороне Wordpress и телеграм будет триггериться на самую обычную прямую ссылку на пост.
у меня сайт на modx, поэтому я и хочу понять, мне нужно сделать пост в телетайп или подсунуть нужный шаблон боту телеграм. понял, нужно просто на своем сайте вывести правильно оформленный пост
Да, способ без проблем адаптируется для любых других платформ. Смотрите исходник рендера, перепилите под вашу платформу - и всё должно работать.
а есть какой-то способ для тестирования?
if ('TelegramBot (like TwitterBot)' == $_SERVER['HTTP_USER_AGENT']) {
// Dsiplay special template to trigger IV
}поставил такое условие - мне даже при переходе по ссылке в тг все равно выдает обычный шаблон, такое ощущение что условие не срабатывает.
С одной стороны логично, я не бот тг, а с другой - стороны и ничего не происходит, как понять причину?
У меня есть про это в статье немного.
Бот кеширует результат, если ссылка была уже в телеге без IV то она и будет такой же дальше, можно добавить случайные параметры в URL что бы инвалидировать кеш
Дерните страницу с cURL и проверьте что у вас всё в порядке с шаблоном, например
curl -vL 'https://petro.ws/archives/2748' -H 'User-Agent: TelegramBot (like TwitterBot)'
Бот чувствителен к элементам, так как использует фактически темплейт с teletype - а значит разметка должна совпадать
Да я уже в принципе убрал это условие и вывожу для всех пост в шаблоне для IV, но это ничего не меняет. Попробую изменить url на новый, это мысль.
Да, оказалось, что тг бот кеширует старые страницы и поэтому не срабатывал. С новыми адресами работает, спасибо.
А вот $_SERVER['HTTP_USER_AGENT'] проблема. Условие не срабатывает потому что user agent выдается другой.
ответ от curl
IPv6: (none)IPv4: 46.36.221.168Trying 46.36.221.168:443...schannel: disabled automatic use of client certificateALPN: curl offers http/1.1ALPN: server accepted http/1.1using HTTP/1.x > GET /blog/raznoe/2025/11/test1.html HTTP/1.1 > Host:yachtclubparus.ru> Accept:/>User-Agent: TelegramBot (like TwitterBot)>Request completely sent off < HTTP/1.1 200 OK < Server: nginx/1.28.0 < Date: Fri, 05 Dec 2025 12:26:35 GMT < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Connection: keep-alive < X-Powered-By: PHP/8.2.28 < Expires: Thu, 19 Nov 1981 08:52:00 GMT < Cache-Control: no-store, no-cache, must-revalidate < Pragma: no-cache < Set-Cookie: PHPSESSID=8780d1dc9cccae491cade5cc5c951658; expires=Fri, 12 Dec 2025 12:26:35 GMT; Max-Age=604800; path=/; HttpOnly < Vary: Accept-Encoding<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 YaBrowser/25.10.0.0 Safari/537.36
последняя строка это вывод переменной $_SERVER['HTTP_USER_AGENT'] и она не соответствует телеграмботу
У вас тогда что-то с конфигом на сервере, если User-Agent хедер не доходит до PHP. Но если шаблон работает хорошо то и здорово :-)
Да, все верно, сниппет кешировался, поэтому выдавал неактуальный useragent.
Разобрался, все работает.
Поищу еще можно ли сбросить кеш для уже существующих страниц.
вот вам решение, @WebpageBot
официальный бот, можете туда загнать все кешированные страницы и нажать на обновление.
.
Спасибо автору, скормил все репозитории и вашу статью нейронке, пусть попытхит. реализует мне это.

Включаем Telegram Instantview для блога глобально