2017-03-02 11 views
0

Ich habe ein Problem, eine benutzerdefinierte Tastatur für mein Telegramm Bot zu erstellen.Telegram Bot PHP-Tastatur funktioniert nicht

einfach, es nicht funktioniert hat, und ich weiß nicht den Grund ...

Dies ist mein Code:

<? 
$botToken = "*****"; 
$website = "https://api.telegram.org/bot".$botToken; 

$update = file_get_contents('php://input'); 
$update = json_decode($update, TRUE); 

$chatId = $update["message"]["chat"]["id"]; 
$message = $update["message"]["text"]; 
$telegramusername = $update["message"]["from"]["username"]; 
$message_id = $update["message"]["message_id"]; 
$message_name = $update["message"]["chat"]["first_name"]; 


switch($message) 
{ 
case "ciao": 
funzioneCiao($chatId); 
break; 
case "youtube": 
TastieraInline($chatId); 
break; 
default: 
TastieraMenuPrincipale($chatId); 
break; 
} 

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

function funzioneCiao($chatId) 
{ 
    $messaggio = "ciao"; 
inviaMessaggio($chatId, $messaggio); 
} 



function TastieraMenuPrincipale($chatId) 
{ 
    $messaggio = "ciaaaao"; 
    $tastiera = '&reply_markup={"keyboard":[["Menu Principale"],["Developer"]]}'; 
    $url = "$GLOBALS[website]"."/sendMessage?chat_id=".$chatId."&parse_mode=HTML&text=".$messaggio.$tastiera; 
    file_get_contents($url); 

} 

function TastieraInline($chatId) 
{ 
    $message = "Iscriviti subito"; 
    $tastiera = '&reply_markup={"inline_keyboard":[[{"text":"SEGUIMI!","url":"http://www.youtube.com"}]]}'; 
    $url = $GLOBALS[website].'/sendMessage?chat_id='.$chatId.'&parse_mod=HTML&text='.$message.$tastiera; 
    file_get_contents($url); 
} 
?> 

Funktionen: "funzioneCiao ($ chatId);" und "inviaMessaggio ($ chatId, $ messaggio)" funktioniert aber, "TastieraMenuPrincipale ($ chatId)" und "TastieraInLine ($ ChatId)" funktioniert nicht.

Ich bin ein Anfänger in PHP so habe ich viel schwieriger ...

Danke.

+0

Sie erschossen zeigen Sie Bot-Token. Es kann missbraucht werden. Sie können stattdessen beliebige Buchstaben verwenden. – ManzoorWani

+0

Es ist ein Beispiel, es ist nicht mein richtiger Bot;) –

Antwort

0

Getestet habe ich nur den Code, es perfekt ...

enter image description here

+0

Uhm ich versuchte es wieder, aber es funktioniert nicht mit mir .... Ich benutze ein kostenloses Hosting-Web, um meinen Bot zu verwenden, aber funktioniert nicht .. . kannst du mir helfen? –

+0

Ich getestet mit URL (https: //api.telegram ......) und es funktioniert. Also die möglichen Probleme sind zwei: "und" gibt Probleme oder mein freewebhosting kann dies nicht tun –

+0

Kannst du den vollständigen Code? – ManzoorWani

0

Warum arbeitet man nicht ROTATION statt file_get_contents();?!

schreiben Sie einfach diese Funktion in den Code dann rufen nach neuen Updates erhalten:

function makeHTTPRequest($method, $types = []){ 
    $url = 'https://api.telegram.org/bot'.$botToken.'/'.$method; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($types)); 
    $res = curl_exec($ch); 
    if (curl_error($ch)){ 
     var_dump(curl_error($ch)); 
    } else { 
     return json_decode($res); 
    } 
} 

stellen Sie sicher, curl auf Ihrem Hosting-Server aktiviert ist!

Verwandte Themen