Telegram bot webhook-inställning: komplett guide för utvecklare
Lär dig telegram bot webhook-inställning steg för steg. Konfigurera setWebhook, verifiera med getWebhookInfo, hantera HTTPS och felsök vanliga fel.
Telegram bot webhook-inställning ansluter din server till Telegrams uppdateringsström så att meddelanden anländer i realtid istället för i en polling-loop. Om du bygger en anpassad bot med Bot API, är webhooks den vanliga produktionsvägen: Telegram POSTar varje uppdatering till din HTTPS-slutpunkt, och din kod svarar.
Denna guide går igenom förutsättningar, registrering, ett fungerande exempel på en hanterare, verifiering, felsökning och när en hanterad plattform som TeleClaw är mer meningsfull än att själv hosta.
Viktiga slutsatser
- Webhooks och long polling är ömsesidigt uteslutande. Att ställa in en webhook inaktiverar
getUpdatestills du tar bort den. - HTTPS är obligatoriskt. Din slutpunkt behöver TLS 1.2+, ett matchande certifikat och port 443, 80, 88 eller 8443.
- Registrera med
setWebhook, verifiera medgetWebhookInfo. Kontrolleralast_error_messagenär uppdateringar slutar flöda. - Använd
secret_tokenför att bekräfta att förfrågningar kommer från Telegram, inte slumpmässiga skannrar som träffar din URL. - No-code-alternativ: TeleClaw hanterar hosting och leverans så att du helt hoppar över serverlagret.
Webhooks vs long polling: vilken ska man välja
Telegram erbjuder två sätt att ta emot uppdateringar. Enligt Bots FAQ väljer du en metod per bot. Du kan inte köra båda samtidigt.
| Faktor | Webhook | Long polling (getUpdates) |
|---|---|---|
| Anslutningsriktning | Telegram skickar till din server | Din server hämtar från Telegram |
| Offentlig HTTPS-URL | Krävs | Krävs inte |
| SSL-certifikat | Krävs | Krävs inte |
| Latens | Lägre (omedelbar push) | Beror på polling-intervall |
| Bäst för | Produktion, hög trafik | Lokal utveckling, prototyper |
| Brandvägg | Måste acceptera inkommande POST från Telegram | Endast utgående HTTPS |
Long polling är det snabbaste sättet att prototypa. Din bot anropar getUpdates i en loop, bearbetar varje batch och flyttar fram offseten. Ingen domän, inget certifikat, ingen öppen port.
Webhooks vänder på modellen. Telegram skickar en HTTPS POST till din URL när någon meddelar boten. Det tar bort inaktiva polling-förfrågningar och minskar reaktionstiden, vilket är viktigt för supportbots, betalningsflöden och gruppmoderering i stor skala.
Om du fortfarande registrerar boten själv, börja med vår guide för att skapa en Telegram bot för att få en token från BotFather innan du fortsätter här.
Förutsättningar för telegram bot webhook-inställning
Innan du anropar setWebhook, bekräfta att din infrastruktur uppfyller Telegrams krav från den officiella webhook-guiden:
- Bot-token från @BotFather (se guiden för att skapa boten som länkades ovan).
- Offentlig domän med ett giltigt TLS-certifikat. Självsignerade certifikat fungerar endast om du laddar upp den publika nyckeln via
certificate-parametern. - Stödd port på din server: 443 (standard), 80, 88 eller 8443. Andra portar avvisas.
- Certifikat CN eller SAN måste matcha domänen i din webhook-URL. Wildcard-certifikat kanske inte fungerar. Omdirigeringar stöds inte.
- Inkommande POST-åtkomst från Telegram-subnät
149.154.160.0/20och91.108.4.0/22.
För lokal utveckling, exponera localhost via en tunnel (ngrok, Cloudflare Tunnel eller liknande) som ger dig en publik HTTPS-URL. Testa att tunneln returnerar HTTP 200 för POST-förfrågningar innan du registrerar webhooken.
Steg 1: Bygg din webhook-slutpunkt
Din server behöver en rutt som accepterar POST-förfrågningar, parsar JSON Update-objektet och returnerar HTTP 200 snabbt. Långsamma hanterare får Telegram att försöka igen och så småningom rapportera fel i getWebhookInfo.
Minimalt Node.js-exempel med Express:
import express from 'express';
const app = express();
app.use(express.json());
const SECRET = process.env. WEBHOOK_SECRET;
app.post('/webhook', (req, res) => {
if (SECRET && req.get('X-Telegram-Bot-Api-Secret-Token')!== SECRET) {
return res.sendStatus(403);
}
const update = req.body;
// Process update.message, update.callback_query, etc.
console.log('Update ID:', update.update_id);
res.sendStatus(200);
});
app.listen(443);
Python med Flask följer samma mönster: läs JSON från request, validera den hemliga headern om konfigurerad, bearbeta uppdateringen, returnera 200.
Svara snabbt. Tungt arbete (databas-skrivningar, AI API-anrop) bör gå till en bakgrundskö. Telegram förväntar sig en snabb bekräftelse. Du kan också svara direkt genom att returnera en JSON-kropp med ett method-fält istället för att göra ett separat API-anrop, som beskrivs i Bot API webhook-anteckningarna.
Steg 2: Telegram bot konfigurera webhook med setWebhook
När din slutpunkt är live, registrera den med Bot API. Ersätt <TOKEN> och URL:en med dina värden.
Använder curl:
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourdomain.com/webhook",
"secret_token": "my_random_secret_abc123",
"max_connections": 40,
"allowed_updates": ["message", "callback_query", "chat_join_request"],
"drop_pending_updates": false
}'
Parameterreferens:
- url (obligatorisk): Din HTTPS-slutpunkt. Använd en tom sträng för att ta bort webhooken.
- secret_token (valfri): 1-256 tecken (
A-Z,a-z,0-9,_,-). Telegram skickar den iX-Telegram-Bot-Api-Secret-Token-headern. - max_connections (valfri): 1-100 samtidiga anslutningar. Standard är 40.
- allowed_updates (valfri): Begränsa vilka uppdateringstyper du tar emot. Minskar nyttolaststorleken om du bara hanterar meddelanden.
- drop_pending_updates (valfri): Sätt
trueför att kassera köade uppdateringar när du byter webhooks. - certificate (valfri): Ladda upp din publika nyckelfil för självsignerade certifikat.
Ett lyckat svar ser ut som {"ok":true,"result":true,"description":"Webhook was set"}.
Steg 3: Verifiera med getWebhookInfo
Bekräfta alltid registreringen omedelbart. Detta är ditt första felsökningsverktyg när uppdateringar slutar anlända.
curl "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"
Exempel på svar:
{
"ok": true,
"result": {
"url": "https://yourdomain.com/webhook",
"has_custom_certificate": false,
"pending_update_count": 0,
"max_connections": 40,
"allowed_updates": ["message", "callback_query", "chat_join_request"]
}
}
Håll koll på dessa fält:
- url: Tom betyder att ingen webhook är aktiv (boten använder long polling).
- pending_update_count: Köade uppdateringar som väntar på leverans. Ett stigande antal signalerar leveransfel.
- last_error_date och last_error_message: Den senaste felorsaken. Fixa grundorsaken, sedan försöker Telegram automatiskt igen.
- ip_address: Vilken Telegram IP som för närvarande träffar din slutpunkt.
Skicka ett testmeddelande till din bot från ett riktigt Telegram-konto. Om pending_update_count förblir noll och dina serverloggar visar POST, fungerar telegram bot webhook-inställningen.
Telegram bot webhook-exempel: hanterare för anslutningsförfrågan
Bots för anslutningsförfrågningar (Guardian-liknande antagningsflöden) behöver uppdateringstypen chat_join_request. Vår Guardian bot-guide täcker produktsidan. Här är webhook-kopplingen.
Registrera med anslutningsförfrågningar aktiverade:
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
-d "url=https://yourdomain.com/webhook" \
-d "allowed_updates=[\"chat_join_request\",\"message\"]"
Hanteringslogik (pseudokod):
if (update.chat_join_request) {
const { chat, from, invite_link } = update.chat_join_request;
// Kör screeninglogik, godkänn eller avvisa sedan via Bot API
await approveChatJoinRequest(chat.id, from.id);
}
Telegram levererar anslutningsförfrågningar som push-uppdateringar, så webhooks är en naturlig passform för antagningsbots som måste svara innan förfrågan löper ut.
Telegram bot ta bort webhook och växla tillbaka till polling
Behöver du felsöka lokalt med getUpdates? Ta bort webhooken först.
Alternativ A med deleteWebhook:
curl -X POST "https://api.telegram.org/bot<TOKEN>/deleteWebhook" \
-d "drop_pending_updates=true"
Alternativ B med setWebhook och tom URL:
curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url="
Båda metoderna återaktiverar long polling. Om du hoppar över detta steg returnerar getUpdates ingenting eftersom webhooken fortfarande är registrerad till din produktions-URL.
Felsökning av vanliga webhook-fel
När getWebhookInfo visar fel, matcha meddelandet med en lösning:
| Fel symptom | Trolig orsak | Lösning |
|---|---|---|
| SSL-fel / certifikatverifiering misslyckades | Ofullständig certifikatkedja eller utgånget certifikat | Installera fullständig kedja (Let’s Encrypt certbot hanterar detta). Testa med en SSL-kontroll. |
| Felaktigt svar från webhook: 500 | Serverkrasch vid POST | Fixa hanterarfel. Returnera 200 även om bearbetningen misslyckas internt. |
| Felaktigt svar: 404 | URL-sökväg matchar inte | Se till att den registrerade URL:en matchar din rutt exakt. |
| Anslutning tidsinställd | Brandvägg eller fel port | Öppna 443 till Telegram-subnät. Bekräfta att processen lyssnar på en stödd port. |
| För många omdirigeringar | HTTP till HTTPS omdirigeringsloop | Peka webhook-URL:en direkt till den slutliga HTTPS-slutpunkten. |
| pending_update_count klättrar | Slutpunkten var nere under trafik | Fixa slutpunkten, anropa sedan eventuellt setWebhook med drop_pending_updates=true. |
Kör getWebhookInfo enligt ett schema i produktion. Att fånga last_error_message tidigt förhindrar timmar av tyst meddelandeförlust.
Hoppa över servern: hanterade bots med TeleClaw
Inte varje bot behöver anpassad webhook-infrastruktur. Om ditt mål är en AI-assistent för en grupp eller företagskanal, är hosting och uppdateringsleverans lösta problem.
TeleClaw ansluter din BotFather-token till en hanterad körtid som drivs av OpenClaw. Du konfigurerar personlighet, kunskapsbas och modereringsregler i instrumentpanelen. Plattformen hanterar HTTPS-slutpunkter, skalning och AI-modellroutning. Lägg till @claw som gruppadministratör och gå live utan att skriva en webhook-hanterare.
Utforska vad en hanterad bot kan göra på TeleClaws funktionssida. För en fullständig no-code-genomgång, se vår Telegram chatbot utan kod-guide.
Anpassade webhooks är fortfarande meningsfulla när du behöver full kontroll: proprietära backends, reglerad datalagring eller icke-standardiserad uppdateringsbearbetning. För allt annat adderas den operativa kostnaden för certifikathantering, övervakning och återförsök snabbt.
Slutsats
Telegram bot webhook-inställning handlar om fyra steg: distribuera en HTTPS-slutpunkt, anropa setWebhook, verifiera med getWebhookInfo och övervaka efter fel. Använd secret_token för förfrågningsvalidering, begränsa allowed_updates till vad du bearbetar och håll hanterarna snabba.
Utvecklare som vill ha produktions-push-leverans utan att köra servrar kan använda TeleClaw istället. Klistra in din token, konfigurera AI-beteende och fokusera på vad boten säger snarare än hur uppdateringar anländer.
Redo att lansera en AI-bot utan att hantera webhooks? Lägg till @claw i din Telegram-grupp →
FAQ
Vanliga frågor
Hur ställer man in telegram bot webhook?
Vad är skillnaden mellan webhook och long polling?
Hur tar jag bort en telegram bot webhook?
Varför tar min telegram bot webhook inte emot uppdateringar?
Behöver jag en webhook för att köra en AI Telegram bot?
Fortsätt läsa
Verktyg för Telegram community management: vad administratörer behöver 2026
Jämför verktyg för Telegram community management efter uppgift: moderering, onboarding, analys och AI. Välj rätt stack och ställ in den utan bot-röra.
Hur man skapar en Guardian-bot för din Telegram-gruppchatt
Telegram Guardian-botar granskar anslutningsförfrågningar och upprätthåller gruppregler med AI. Lär dig hur du bygger en med TeleClaw med några få uppmaningar, eller manuellt med webhooks.