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

1

https://core.telegram.org/bots/api#callbackquery

2

Questa funzione è usate per rispondere alle callbackQuery https://core.telegram.org/bots/api#answercallbackquery