电报机器人回调查询php监听器

时间:2017-09-12 14:28:55

标签: php telegram

再次,我不能出来,我已经创建了内联按钮,当我点击一个我需要听一个人在PHP中点击,但我不知道如何,我已经看了api但它没有描述好。我不使用任何外部API,只使用官方Telegram API。

有人可以帮帮我吗?我无法让它发挥作用:(

代码:

    <?php

include 'database.php';

$botToken = 'A_TOKEN_HERE_YOU_MAY_NOT_SEE_IT';
$website = 'https://api.telegram.org/bot' . $botToken . '';
//$update = file_get_contents($website."/getUpdates");

$content = file_get_contents("php://input");
$update = json_decode($content, true);


$return = json_decode($update, true);
//
$chatId;
$message;

if (($update['message']) != null) {
    $chatId = $update["message"]["chat"]["id"];
    $message = $update["message"]["text"];
    $query3 = "SELECT * FROM registered_users WHERE userid= '$chatId'";
    $result3 = $conn->query($query3);

    if (mysqli_num_rows($result3) > 0) {
        $row = mysqli_fetch_assoc($result3);
        $rayonsNew = explode(",", $row['rayons']);
    } else {
        $message = "ErrorGeenToegang374892517078923789054873975398753498";
    }

    switch ($message) {
        case "/start":
            $message = "Welkom bij de GS-Media Meldingen Bot.\n\nDeze bot bied momenteel de mogelijkheid om meldingen te ontvangen \nvan de IM Bergers. Deze meldingen kunnen gefilterd worden op;\nRayon, Type (Ongeval, pech etc..) en Tijd.\nEr worden alleen meldingen ontvangen van de hoofdwegen.\n\nJe kunt de bot instellen met de volgende opties⚙️.\n\n▪️ /nieuwrayon\nVoeg een nieuwe rayon toe.\n\n▪️ /verwijderrayon\nVerwijder een rayon.\n\n▪️ /rayonmeldingen\nWijzig soort melding per rayon.\n\n▪️ /rayons\nToon een lijst met actieve rayons\n\n➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖\n\nTijdelijk geen meldingen ontvangen? Rechts boven in drie bolletjes -> Profiel weergeven -> Instellingen -> Meldingen uit.\n\n➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖\n\nhttp://www.stichtingimn.nl/ongevallenradar/\n\nAlle rechten voorbehouden aan \nStichting Incident Management Nederland\n\n➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖\n";
            sendMessage($chatId, $message);
            break;
        case "ErrorGeenToegang374892517078923789054873975398753498":
            sendMessage($chatId, "Geen toegang!");
            break;
        case "/rayons":
            sendMessage($chatId, "Jouw gekozen rayons: " . implode(", ", explode(",", $row['rayons'])));
            break;
        case "/commands":
            sendMessage($chatId, "/rayons - Laat al jouw rayons zien");
            break;
        case "/verwijderrayon":
            sendMessage($chatId, "Kies een Rayon die je wil verwijderen");
            break;
        case "/nieuwrayon":
            $keyboard = [
                'inline_keyboard' => [[['text' => "O74", 'callback_data' => "/O74"]], [['text' => "O75", 'callback_data' => "/O75"]]],
            ];
            $markup = json_encode($keyboard, true);
            sendReplyMessage("chat_id=" . $chatId . "&text=" . urlencode("Kies een rayon") . "&reply_markup=" . $markup);
            break;
        default:
            sendMessage($chatId, "Fout - Error 1\n\nOnbekende commando, typ /commands voor alle commando's");
    }
} else if ($update['callback_query'] != null) {
    $chatId = $update["callback_query"]["id"];
    $message = $update["callback_query"]["message"];
    switch($update['callback_query']['data']){
        case "O75":
            sendMessage($chatId, "test");
            break;
        default:
            sendMessage($chatId, "Test2");
    }
}

//file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=Test123");
//file_get_contents($website."/sendmessage?chat_id=152984448".$chatId."&text=Test123465467380584930572389");


function sendReplyMessage($websijt)
{
    $url = $GLOBALS[website] . "/sendMessage?" . $websijt;
    file_get_contents($url);
}


function sendMessage($chatId, $message)
{
    $url = $GLOBALS[website] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
    file_get_contents($url);
}

?>

1 个答案:

答案 0 :(得分:1)

在回调查询中,$update["callback_query"]["id"]不是聊天ID,您可以使用AnswerCallbackQuery方法代替sendMessage