Quer seu anúncio aqui ? Temos preços especiais.

23/09/2017

Como fazer meu bot em php enviar mensagens com teclado personalizado

Nenhum comentário :


As vezes pode ser necessário criar um teclado personalizador em seu bot para que as respostas possam atender uma das opções entre as quais o bot foi programado para responder, na hora que iremos dá o código para que você possa criar o teclado consideraremos que seu código do bot já tem todas estas funções e códigos :



<?php
define('BOT_TOKEN', '<!--TOKEN API-->');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
function exec_curl_request($handle) {
  $response = curl_exec($handle);
  if ($response === false) {
    $errno = curl_errno($handle);
    $error = curl_error($handle);
    error_log("Curl returned error $errno: $error\n");
    curl_close($handle);
    return false;
  }
  $http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE));
  curl_close($handle);
  if ($http_code >= 500) {
    sleep(10);
    return false;
  }   else if ($http_code != 200) {
    $response = json_decode($response, true);
    error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n");
    if ($http_code == 401) {
      throw new Exception('Invalid access token provided');
    }
  return false;
} else {
  $response = json_decode($response, true);
    if (isset($response['description'])) {
      error_log("Request was successfull: {$response['description']}\n");
    }
    $response = $response['result'];
  }
  return $response;
}
function apiRequest($method, $parameters) {
  if (!is_string($method)) {
    error_log("Method name must be a string\n");
    return false;
  }
  if (!$parameters) {
    $parameters = array();
  } else if (!is_array($parameters)) {
    error_log("Parameters must be an array\n");
    return false;
  }
  foreach ($parameters as $key => &$val) {
    if (!is_numeric($val) && !is_string($val)) {
      $val = json_encode($val);
    }
  }
  $url = API_URL.$method.'?'.http_build_query($parameters);
  $handle = curl_init($url);
  curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);   curl_setopt($handle, CURLOPT_TIMEOUT, 60);
  return exec_curl_request($handle);
}
function apiRequestJson($method, $parameters) {
  if (!is_string($method)) {
    error_log("Method name must be a string\n");
    return false;
  }
  if (!$parameters) {
    $parameters = array();
  } else if (!is_array($parameters)) {
    error_log("Parameters must be an array\n");
    return false;
  }
  $parameters["method"] = $method;
  $handle = curl_init(API_URL);
  curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt($handle, CURLOPT_TIMEOUT, 60);
  curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters));
  curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
  return exec_curl_request($handle);
}
function processMessage($message) {
    //Conteúdo de sua função que processa a mensagem   }
}
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if (!$update) {
  exit;
}
if (isset($update["message"])) {
  processMessage($update["message"]);
}
?>

    
    



Para enviar mensagens simples neste código usariamos algo em torno disto :
    
      apiRequest("sendMessage", array('chat_id' => $message['chat']['id'], "text" => 'Olá'));
    
    
    


Para enviar mensagens com teclado personalizados usamos algo em torno disso:

    
      apiRequest("sendMessage", array('chat_id' => $message['chat']['id'], "text" => 'Olá', 'reply_markup' => array('keyboard' => array(array('Olá', 'Oi')), 'one_time_keyboard' => true, 'resize_keyboard' => true)));
    
    
    


Dúvidas ? Deixe nos comentários.

Nenhum comentário :

Postar um comentário

Ao acessar e comentar em nossos serviços você concorda com a nossas Politicas de privacidade, com nossos Termos de Uso e com a nossas Políticas de segurança