/** GET MESSAGES AND STORAGE**/ public function getMessages() { $result = array(); while ($this->managerWhats->pollMessage()) { $data = $this->managerWhats->getMessages(); foreach ($data as $message) { $userSendMessage = $message->getAttribute('from'); list($number, $whatsAppUrl) = explode('@', $userSendMessage); $result[$userSendMessage]['userSend'] = $message->getAttribute('notify'); if ($message->getChild('media')) { $mess = $message->getChild("media"); //$mess = $message->getChild("enc"); $result[$userSendMessage]['messages'][] = $mess->getAttribute('url'); $this->storageMessage($this->users->getNmWhatsapp(), $number, $mess->getAttribute('url'), false, true, $message->getAttribute('notify')); if (!empty($mess->getAttribute('caption'))) { $this->storageMessage($this->users->getNmWhatsapp(), $number, $mess->getAttribute('caption'), false, false, $message->getAttribute('notify')); } } else { $mess = $message->getChild("body"); //$mess = $message->getChild("enc"); $result[$userSendMessage]['messages'][] = $mess->getData(); $this->storageMessage($this->users->getNmWhatsapp(), $number, $mess->getData(), false, false, $message->getAttribute('notify')); } } } return $result; }
$w->sendGetServerProperties(); // Obtenemos las propiedades del servidor $w->sendClientConfig(); // Enviamos nuestra configuración al servidor $sync = [$target]; $w->sendSync($sync); // Sincronizamos el contacto $w->pollMessage(); // Volvemos a poner en cola mensajes $w->sendPresenceSubscription($target); // Nos suscribimos a la presencia del usuario $pn = new ProcessNode($w, $target); $w->setNewMessageBind($pn); while (1) { $w->pollMessage(); $msgs = $w->getMessages(); foreach ($msgs as $m) { // process inbound messages //print($m->NodeString("") . "\n"); } $line = fgets_u(STDIN); if ($line != '') { if (strrchr($line, ' ')) { $command = trim(strstr($line, ' ', true)); } else { $command = $line; } switch ($command) { case '/query': $dst = trim(strstr($line, ' ', false)); echo "[] Interactive conversation with {$contact}:\n";
} $dst = $_SERVER['argv'][2]; $msg = ""; for ($i = 3; $i < $argc; $i++) { $msg .= $_SERVER['argv'][$i] . " "; } echo "[] Logging in as '{$nickname}' ({$sender})\n"; $wa = new WhatsProt($sender, $imei, $nickname, TRUE); $wa->connect(); $wa->loginWithPassword($password); if ($_SERVER['argv'][1] == "-i") { echo "\n[] Interactive conversation with {$dst}:\n"; stream_set_timeout(STDIN, 1); while (TRUE) { $wa->pollMessages(); $buff = $wa->getMessages(); if (!empty($buff)) { print_r($buff); } $line = fgets_u(STDIN); if ($line != "") { if (strrchr($line, " ")) { // needs PHP >= 5.3.0 $command = trim(strstr($line, ' ', TRUE)); } else { $command = $line; } switch ($command) { case "/query": $dst = trim(strstr($line, ' ', FALSE)); echo "[] Interactive conversation with {$dst}:\n";
running($time); //check again if timestamp has been updated //check for outbound messages to send: session_start(); $outbound = $_SESSION["outbound"]; $_SESSION["outbound"] = array(); session_write_close(); if (count($outbound) > 0) { foreach ($outbound as $message) { //send messages $w->sendMessage($message["target"], $message["body"]); $w->pollMessages(); } } //check for received messages: $messages = $w->getMessages(); if (count($messages) > 0) { session_start(); $inbound = $_SESSION["inbound"]; $_SESSION["inbound"] = array(); //lock foreach ($messages as $message) { $data = @$message->getChild("body")->getData(); if ($data != null && $data != '') { $inbound[] = $data; } } $_SESSION["inbound"] = $inbound; session_write_close(); } }