Ja fa uns dies que vaig crear-me un bot per al telegram. És un procés força senzill un cop l'entens, així que poso aquí els passos a seguir. El primer que cal fer es crear un nou bot, per a això, cal buscar el contacte botfather al telegram, fer un /start i aleshores crear el bot amb la comanda /newbot
Ens demanarà un nom per al bot i ens retornarà una token única per al nostre bot

botfather-NewBot

Haurem de ddecidir on posarem l'script del nostre bot, per exemple a http://marc.bres.cat/telegrambot24680/tgbot.php i registrar-ho al web de telegram mitjançant la URL https://api.telegram.org/botToken_que_ens_ha_donat_el_botfather/setWebhook?url=url_del_bot per exemple:
https://api.telegram.org/bot123456:abcdefghijklmnopqrstuvwxyzABCDEFGHIJ/setWebhook?url=http://marc.bres.cat/telegrambot24680/tgbot.php

Un cop fet això, cada cop que algú envii un missatge al nostre bot, telegram farà una crida a aquesta URL passant les dades (usuari, id del xat i text que ens envia). Només ens cal fer un script que contesti a la URL. Aquí va un exemple senzill, ens contestarà dient "Hola m'has dit " i el que li haguem dit:

$token="123456:abcdefghijklmnopqrstuvwxyzABCDEFGHIJ"; //la nostra token $apiurl="https://api.telegram.org/bot".$token; //Quan s'envia un missatge al bot, la informació va adjunta a php://input ho llegim i ho posem a la variable $content $content=file_get_contents("php://input"); //Convertim $content a una matriu que es diu $update $update=json_decode($content, TRUE); /*#$message sera del tipus: { "message_id":2, "from":{"id":126101111,"first_name":"Paul"}, "chat":{"id":126101111,"first_name":"Paul","type":"private"}, "date":1446297296, "text":"A Message" }*/ $message = $update["message"]; //agafem el que necessitem i contestem $chatId = $message["chat"]["id"]; $who = $message["from"]["first_name"]; $text = $message["text"]; $resposta = "Hola ".$who." m'has dit " .$text."?"; file_get_contents($apiurl."/sendmessage?chat_id=".$chatId."&text=".osta); }
I ja el podem provar:

telegrambot

Previous Post Next Post

Add a comment