Как сообщения из Telegram публиковать на своём сайте
11.11.2021 05:39:04 pm
8 декабря, 2017 года, Telegram анонсировал, что записи/сообщения можно вставлять на различные сайты:
Для этого можно нажать на кнопку < > EMBED, что находится слева, под записью, и скопировать код. Код будет в виде подключаемого JS файла:
Но такой вариант будет удобен далеко не всем.
Можно вставлять сообщение при помощи Iframe, например так:
Но тут придется прописывать высоту Iframe вручную. У этого Iframe она равна 379px.
Оба эти варианта мне не подошли, первый из за JS файла, второй из за ручной установки высоты сообщения.
Я сделал так (Тоже Iframe):
В переменной
Читайте ещё:
- Тема: Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'interest-cohort'
- Тема: BBcode для вставки записей с Instagram
Для этого можно нажать на кнопку < > EMBED, что находится слева, под записью, и скопировать код. Код будет в виде подключаемого JS файла:
<script async src="https://telegram.org/js/telegram-widget.js?15" data-telegram-post="telegram/83" data-width="100%"></script>
Но такой вариант будет удобен далеко не всем.
Можно вставлять сообщение при помощи Iframe, например так:
<iframe id="telegram-post-telegram-83" src="https://t.me/telegram/83?embed=1" width="100%" height="100%" frameborder="0" scrolling="no" style="overflow: hidden; border: none; min-width: 320px; height: 379px;"></iframe>
Но тут придется прописывать высоту Iframe вручную. У этого Iframe она равна 379px.
Оба эти варианта мне не подошли, первый из за JS файла, второй из за ручной установки высоты сообщения.
Я сделал так (Тоже Iframe):
// Telegram.Org
else if (stristr($url, 'https://t.me/') !== false)
{
$url = str_replace('https://t.me/', '', $url);
return '<iframe onload="var c = new MessageChannel; c.port1.onmessage = function(e) { style.height=e.data + \'px\' }; contentWindow.postMessage(\'s9e:init\', \'https://s9e.github.io\', [c.port2]);" src="https://s9e.github.io/iframe/2/telegram.min.html#' . $url . '" width="100%" frameborder="0" scrolling="no" allowtransparency="true" loading="lazy"></iframe>';
} // Telegram.Org
В переменной
$url
содержится URL записи, например, https://t.me/telegram/83
.Читайте ещё:
- Тема: Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'interest-cohort'
- Тема: BBcode для вставки записей с Instagram
- Жалоба
09.01.2023 05:23:08 pm
Сайт "s9e.github.io" Агент Ева от МегаФона распознает, как небезопасный, поэтому кто будет "бродить" по сайту через провайдер МегаФон с подключенной услугой "Агент Ева" (А так же на других провайдерах, с подобной услугой), не увидят вставленных блоков Telegram на страницах сайта. Вместо поста Telegram будет предупреждение о небезопасном запросе. Поэтому я пересмотрел свое отношение к JS, сделал так:
То есть, сейчас я использую строчку кода, что предлагает сам Телеграмм:
Результат:
// Telegram.Org
else if (stristr($url, 'https://t.me/') !== false)
{
$url = str_replace('https://t.me/', '', $url);
return '<script async src="https://telegram.org/js/telegram-widget.js" data-telegram-post="' . $url . '" data-width="100%"></script>';
} // Telegram.Org End
То есть, сейчас я использую строчку кода, что предлагает сам Телеграмм:
<script async src="https://telegram.org/js/telegram-widget.js" data-telegram-post="url" data-width="100%"></script>
Результат: