Обновить

Комментарии 33

  • Фича InstantView есть только на мобильных платформах :-) Да, звучит глупо, но я реально убил некоторое время, пытаясь понять, почему у меня он не включается на десктопном клиенте.

считаю это боооольшой недоработкой телеги, но увы со мной согласно так мало людей что видимо чуда не случится.

Включи бета обновление и сразу получишь instanview на десктопе)

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

Ссылки с telegra.ph открываются в instant view, например посты одного канала в десктопной версии выглядят так:

OS: Windows 10, APP: Telegram Desktop 4.16.6

В винду завезли видимо, может быть я из-за этого помнил - что вроде было, и тупил когда своей концепт тестил. У меня десктопный клиент под Linux и специально посмотрел ту же версию что у вас - там нет. Спасибо за замечание!

Спасибо за замечание, перефразировал абзац про наличие на клиентах.

А вообще отключить эти превьюшки при отправке допустим с компа?

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

Я не хочу чтобы вставлялись превьюшки при отправке мной ссылок на левые сайты, ибо это бесит.

При отправке превьюшку можно удалить, у меня по крайней мере так:

По умолчанию наверное не настроить никак. Можете разве что открыть feature request или пропатчить самому :-)

Вот именно по умолчанию и нужно.

Попробуйте обновить кэш бота с помощью @WebpageBot

На десктопе на маке тоже работает instantview

Да, спасибо за замечание, перефразировал абзац про наличие на клиентах.

Самое главное: Wordpress -> WordPress, поправьте, пожалуйста

Поправил

@petro_64

В варианте который вы предлагаете, можно ли через Instantview использовать или прослушивать аудиофайлы MP3, OGG и прочее? Это прямо боль :(

Должно работать. Вообще зависит от способа встраивания, я проверил для примера на YouTube - всё работает и играет прямо через Instantview.

а кросс-постинг на 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.168

  • Trying 46.36.221.168:443...

  • schannel: disabled automatic use of client certificate

  • ALPN: curl offers http/1.1

  • ALPN: server accepted http/1.1

  • using 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
официальный бот, можете туда загнать все кешированные страницы и нажать на обновление.

Спасибо, буду знать. Оно вроде итак за пару месяцев обновляется, но хорошо что есть возможность принудительно обновить

Спасибо автору, скормил все репозитории и вашу статью нейронке, пусть попытхит. реализует мне это.

Вот так получилось

И превьюху кастомную сделал динамическую, и получилось подключить инстант вью! Пол дня убил, но удовлетворение максимальное! Точнее нейронка сама все сделала, я только ходил и проверял. Next.js

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации