tutorial bot php telegram-bot

tutorial - Telegram Bot teclado personalizado en PHP



telegram bot php tutorial (2)

Los documentos parecen indicar que debe proporcionar el parámetro reply_markup como un objeto serializado JSON ... algo estúpido para un punto final de POST:

$replyMarkup = array( ''keyboard'' => array( array("A", "B") ) ); $encodedMarkup = json_encode($replyMarkup); $content = array( ''chat_id'' => <chat_id>, ''reply_markup'' => $encodedMarkup, ''text'' => "Test" );

¿Este funciona?

Estoy tratando de hacer un Bot Telgram en PHP con un teclado personalizado. El mensaje se entrega, pero el teclado personalizado no funcionará. $ keyb = array (''keyboard'' => array (array ("A", "B"))); También sin éxito.

El método sendMessage ReplyKeyboardMarkup a ReplyKeyboardMarkup para el objeto. Hacer una matriz para ReplyKeyboardMarkup no funciona. También intenté json_encode ($ keyb) pero esa tampoco es la solución.

Busqué en GitHub ejemplos, pero no he encontrado uno donde se use el teclado personalizado. Telegram se ejecuta en iPhone y escritorio, ambos actualizados.

Código de muestra:

$url = "https://api.telegram.org/bot<token>/sendMessage"; $keyb = array(''ReplyKeyboardMarkup'' => array(''keyboard'' => array(array("A", "B")))); $content = array(''chat_id'' => <chat_id>, ''reply_markup'' => $keyb, ''text'' => "Test"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content)); curl_setopt($ch, CURLOPT_HTTPHEADER, array(''Content-Type: application/x-www-form-urlencoded'')); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //fix http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/ // receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec ($ch); curl_close ($ch); var_dump($server_output);


$keyboard = array(array("[Destaques]","[Campinas e RMC]","[esportes]")); $resp = array("keyboard" => $keyboard,"resize_keyboard" => true,"one_time_keyboard" => true); $reply = json_encode($resp); $url = $GLOBALS[website]."/sendmessage?chat_id=".$chatId."&text=oi&reply_markup=".$reply; file_get_contents($url);

Este código funciona bien!