2017-09-12 2 views
1

再び、私はインラインボタンを作成しました.1つをクリックすると、phpでクリックされたものを聞く必要がありますが、私はどのように知っているのですか?しかし、その良い説明されていません。私は外部APIを使用せず、公式のTelegram APIのみを使用します。テレグラムボットコールバッククエリphpリスナー

誰かが私を助けることができますか?私はそれが

コード:(作業を取得カント:。

コールバッククエリで
<?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); 
} 

?> 
+0

は、今すぐあなたのトークンを変更してください –

+0

を@。 u_mulder偽のトークン........ –

答えて

1

$update["callback_query"]["id"]はIDをチャットされていない、あなたはsendMessageの代わりにAnswerCallbackQueryメソッドを使用することができ

+0

$ update ["callback_query"]は呼び出されません。AnswerCallBackQueryを使用するとまだ動作していません –