jb_alvarado
Lieutenant
- Registriert
- Sep. 2015
- Beiträge
- 593
Hallo Allerseits,
kurz zum Hintergrund:
Ich habe einen Telegram Channel erstellt, diesen lasse ich mit einem selbst programmierten Bot überwachen. Wenn eine neue Nachricht herein kommt, schreibt der Bot diese in eine Datenbank.
Mit einer simplen API kann ich die Datenbank abfragen und mir die letzte Message ID ausgeben.
Den Aufwand betreibe ich, weil ich auf einer Webseite immer den letzten Post darstellen möchte. Telegram biete nur die Möglichkeit an einen Post mit auszugeben und zwar mit:
Jetzt müsste ich allerdings per JS das
Allerdings wird so mein Widget nicht angezeigt. Ich vermute weil ich es mit
Das Element müsste also entweder später initialisiert werden, wenn es schon seine Werte hat, oder grundsätzlich mit den korrekten Daten erstellt werden.
Habt ihr eine Idee, wie ich das hinbekomme?
kurz zum Hintergrund:
Ich habe einen Telegram Channel erstellt, diesen lasse ich mit einem selbst programmierten Bot überwachen. Wenn eine neue Nachricht herein kommt, schreibt der Bot diese in eine Datenbank.
Mit einer simplen API kann ich die Datenbank abfragen und mir die letzte Message ID ausgeben.
Den Aufwand betreibe ich, weil ich auf einer Webseite immer den letzten Post darstellen möchte. Telegram biete nur die Möglichkeit an einen Post mit auszugeben und zwar mit:
HTML:
<script async src="https://telegram.org/js/telegram-widget.js?19" data-telegram-post="telegram/83" data-width="100%"></script>
Jetzt müsste ich allerdings per JS das
data-telegram-post
verändern. Bekomme ich auch hin, mit:
Javascript:
async function getLastPost() {
const response = await fetch('https://example.org/api/posts?fields=postId&limit=1');
const json = await response.json();
if (json.data.length > 0) {
return json.data[0].postId;
}
return 0;
}
async function processTelegram () {
const lastPost = await getLastPost();
const scriptData = document.querySelector('[data-telegram-post]');
if (lastPost > 0) {
scriptData.dataset.telegramPost = `my-channel/${lastPost}`;
}
}
processTelegram()
Allerdings wird so mein Widget nicht angezeigt. Ich vermute weil ich es mit
data-telegram-post=""
initialisiere, und später den Wert überschreibe.Das Element müsste also entweder später initialisiert werden, wenn es schon seine Werte hat, oder grundsätzlich mit den korrekten Daten erstellt werden.
Habt ihr eine Idee, wie ich das hinbekomme?
Zuletzt bearbeitet: