saludar($message['chatId'],false); break;} case 'chatid': {$this->mostrarChatId($message['chatId']); break;} case 'fechahora': {$this->fechahora($message['chatId']); break;} case 'yo': {$this->yo($message['chatId'],$message['senderName']); break;} case 'archivo': {$this->archivo($message['chatId'],$text[1]); break;} case 'geo': {$this->geo($message['chatId']); break;} default: {$this->saludar($message['chatId'],true); break;} }}}}} //Esta llama a la función sendRequest para enviar un simple mensaje //@param $chatId [string] [required] - el ID del chat que se ocupa posteriormente para enviar el mensaje quitando la terminación "@c.us" //@param $text [string] [required] - text of the message public function saludar($chatId, $noWelcome = false){ $welcomeString = ($noWelcome) ? "Comando Incorrecto\n" : "WhatsApp Demo Bot PHP\n"; $this->sendMessage($chatId, $welcomeString. "Commands:\n". "1. chatid - Muestra el id del chat actual\n". "2. fechahora - Muestra la fecha y hora del servidor\n". "3. yo - Tu nickname\n". "4. archivo [format] - dame un archivo. Formatos disponibles: doc/gif/jpg/png/pdf/mp3/mp4\n". "5. geo - dame una ubicación\n" ); } //Muestra el id del chat. //@param $chatId [string] [required] - el ID del chat que se ocupa posteriormente para enviar el mensaje quitando la terminación "@c.us" public function mostrarChatId($chatId){ $this->sendMessage($chatId,'ChatID: '.$chatId); } //Envia la hora del servidor cuando el bot detecta el comando "fechahora" //@param $chatId [string] [required] - el ID del chat que se ocupa posteriormente para enviar el mensaje quitando la terminación "@c.us" public function fechahora($chatId){ $this->sendMessage($chatId,date('d.m.Y H:i:s')); } //Envia tu nickname cuando el bot detecta "yo" //@param $chatId [string] [required] - el ID del chat que se ocupa posteriormente para enviar el mensaje quitando la terminación "@c.us" //@param $name [string] [required] - la propiedad senderName del mensaje public function yo($chatId,$name){ $this->sendMessage($chatId,$name); } //Envia un archivo este se invoca cuando el bot detecta el comando "archivo" //@param $chatId [string] [required] - el ID del chat que se ocupa posteriormente para enviar el mensaje quitando la terminación "@c.us" //@param $format [string] [required] - formato del archivo (text[1], etc) public function archivo($chatId,$format){ $availableFiles = array( 'doc' => 'document.doc', 'gif' => 'gifka.gif', 'jpg' => 'jpgfile.jpg', 'png' => 'pngfile.png', 'pdf' => 'presentation.pdf', 'mp4' => 'video.mp4', 'mp3' => 'mp3file.mp3' ); if(isset($availableFiles[$format])){ $data = array( 'numero'=>str_replace("@c.us", "",$chatId), 'url'=>'https://domain.com/PHP/'.$availableFiles[$format], 'nombrearchivo'=>$availableFiles[$format], 'textoimagen'=>'Obtén tu archivo '.$availableFiles[$format] ); $this->sendRequest('enviar-archivo',$data);}} //Envia una ubicación cuando el bot recibe el comando geto. //@param $chatId [string] [required] - El id del chat, se utiliza para mandar el mensaje public function geo($chatId){ $data = array( 'latitud'=>19.4326009, 'longitud'=>-99.1333416, 'direccion'=>'Ubicación de prueba', 'numero'=>str_replace("@c.us", "",$chatId); ); $this->sendRequest('enviar-ubicacion',$data);} public function sendMessage($chatId, $text){ $data = array('numero'=>$chatId,'mensaje'=>$text); $this->sendRequest('enviar-mensaje',$data);} public function sendRequest($method,$data){ $url = $this->APIurl.$method.'?token='.$this->token; if(is_array($data)){ $data = json_encode($data);} $options = stream_context_create(['http' => [ 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $data]]); $response = file_get_contents($url,false,$options); file_put_contents('requests.log',$response.PHP_EOL,FILE_APPEND);}} //execute the class when this file is requested by the instance new whatsAppBot(); ?>