40-tastieraInline.php
1<?php
2// inserisce una tastiera sotto il messaggi
3
4$botToken="metti_qui_il_tuo_id";
5$sitoApi="https://api.telegram.org/bot".$botToken;
6$contentuto = file_get_contents("php://input");
7$ricevuto = json_decode($contentuto, true);
8error_log(json_encode($ricevuto,JSON_PRETTY_PRINT));
9
10if(isset($ricevuto['callback_query'])){ // [1]
11 error_log("CALLBACK");
12 $text=$ricevuto['callback_query']['message']['text'];
13 $callbackId = $ricevuto['callback_query']['id'];
14 // il testo compare in un popup in alto
15 sendAnswer($callbackId,"testo in callback: \"$text\"");
16} else {
17 $text=$ricevuto['message']['text'];
18 $chatId=$ricevuto['message']['chat']['id'];
19
20 // https://core.telegram.org/bots/api#inlinekeyboardbutton
21 $tastiera =
22 // se premuto manda una "CallbackQuery"
23 // https://core.telegram.org/bots/api#callbackquery
24 '[{"text":"ciao","callback_data":"uno"},'.
25 // apre un link
26 '{"text":"mondo","url":"https://kili.aspix.it"}]';
27
28 switch($text){
29 case "tastiera":
30 $tastierino='&reply_markup={"inline_keyboard":['.$tastiera.'],'.
31 '"resize_keyboard":true}';
32 sendMessage($chatId, "tastiera on", $tastierino);
33 break;
34 default:
35 sendMessage($chatId,$text);
36 }
37}
38
39// un parametro in più per eventuali altre cose oltre il messaggio
40function sendMessage($chatId,$text,$aggiunte=""){
41 $url=$GLOBALS['sitoApi']
42 ."/sendMessage?chat_id=$chatId&parse_mode=HTML&text="
43 .urlencode($text).$aggiunte;
44 file_get_contents($url);
45}
46function sendAnswer($chatId,$text){ // [2]
47 $url=$GLOBALS['sitoApi']
48 ."/answerCallbackQuery?callback_query_id=$chatId&parse_mode=HTML&text="
49 .urlencode($text);
50 file_get_contents($url);
51}
52