2017-09-12 1 views
1

Encore une fois, je ne peux pas sortir, j'ai créé des boutons en ligne, quand je clique sur un je dois écouter sur lequel on clique en php, mais je ne sais pas, j'ai regardé sur l'API mais ce n'est pas bien décrit. Je n'utilise aucune API externe, seulement l'API Telegram officielle.Télégramme bot callback requête php listener

Quelqu'un peut-il m'aider? Je ne peux pas le faire fonctionner :(

. Code:

<?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

Maintenant, s'il vous plaît changer votre jeton –

+0

@. u_mulder Fake token ........ –

Répondre

1

Dans Callback Query, $update["callback_query"]["id"] n'est pas ID Clavardez, vous pouvez utiliser la méthode AnswerCallbackQuery au lieu de sendMessage

+0

le $ update ["callback_query"] n'est jamais appelé Quand j'utilise AnswerCallBackQuery son ne fonctionne toujours pas –