public function config($number, $nickname, $password, $debug = false, $identifyFile = false) { $this->setNumber($number); $this->setNick($nickname); $this->setPassword($password); $this->setDebug($debug); $this->wa = new \WhatsProt($this->number, $this->nick, $this->debug, $identifyFile); $this->wa->eventManager()->bind('onGetMessage', array($this, 'processReceivedMessage')); $this->wa->eventManager()->bind('onConnect', array($this, 'connected')); $this->wa->eventManager()->bind('onGetGroups', array($this, 'processGroupArray')); $this->wa->eventManager()->bind('onCodeRequestFailedTooRecent', array($this, 'throwTooRecentException')); $this->wa->eventManager()->bind('onCodeRequestFailedTooManyGuesses', array($this, 'throwTooManyGuessesException')); $this->wa->eventManager()->bind('onCodeRequestFailed', array($this, 'throwCodeRequestFailedException')); $this->wa->eventManager()->bind('onCodeRegisterFailed', array($this, 'throwCodeRegisterFailedException')); }
echo "<{$dFrom} is online>\n\n"; } function onPresenceUnavailable($username, $from, $last) { $dFrom = str_replace(array("@s.whatsapp.net", "@g.us"), "", $from); echo "<{$dFrom} is offline> Last seen: {$last} seconds\n\n"; } echo "[] Logging in as '{$nickname}' ({$username})\n"; //Create the whatsapp object and setup a connection. $w = new WhatsProt($username, $nickname, $debug); $w->connect(); // Now loginWithPassword function sends Nickname and (Available) Presence $w->loginWithPassword($password); //Retrieve large profile picture. Output is in /src/php/pictures/ (you need to bind a function //to the event onProfilePicture so the script knows what to do. $w->eventManager()->bind("onGetProfilePicture", "onGetProfilePicture"); $w->sendGetProfilePicture($target, true); //Print when the user goes online/offline (you need to bind a function to the event onPressence //so the script knows what to do) $w->eventManager()->bind("onPresenceAvailable", "onPresenceAvailable"); $w->eventManager()->bind("onPresenceUnavailable", "onPresenceUnavailable"); echo "[*] Connected to WhatsApp\n\n"; //update your profile picture $w->sendSetProfilePicture("demo/venom.jpg"); //send picture $w->sendMessageImage($target, "demo/x3.jpg"); //send video //$w->sendMessageVideo($target, 'http://techslides.com/demos/sample-videos/small.mp4'); //send Audio //$w->sendMessageAudio($target, 'http://www.kozco.com/tech/piano2.wav'); //send Location
echo "====================================================\n"; echo " WhatsApp Tracker v0.1 \n"; echo "====================================================\n\n"; echo "USAGE: php " . $_SERVER['argv'][0] . " [-check <targetPhone>] [-cHidden <targetPhone>]\n [-cRemote0 <myPhone> <targetPhone>] [-cRemote1 <myPhone> <targetPhone>]\n"; exit(1); } $dst = $_SERVER['argv'][2]; echo "====================================================\n"; echo " WhatsApp tracker v0.1 \n"; echo "====================================================\n\n"; echo "[*] Logging in as WhatsApp Tracker ({$sender})\n"; $wa = new WhatsProt($sender, 'WhatsApp Tracker', FALSE); $wa->connect(); $wa->loginWithPassword($password); $events = new MyEvents($wa); $wa->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $wa->eventManager()->bind("onPresenceAvailable", "onPresenceAvailable"); $wa->eventManager()->bind("onPresenceUnavailable", "onPresenceUnavailable"); if ($_SERVER['argv'][1] == "-cRemote0" || $_SERVER['argv'][1] == "-check") { echo "\n[-] Tracker mode (ON):\n"; while (TRUE) { if ($_SERVER['argv'][1] == "-check") { $wa->sendGetRequestLastSeen($dst); } else { $wa->sendGetRequestLastSeen($_SERVER['argv'][3]); $wa->sendMessage($dst, "(" . $_SERVER['argv'][3] . ") " . $ls); } sleep(60); } } if ($_SERVER['argv'][1] == "-cHidden" || $_SERVER['argv'][1] == "-cRemote1") {
if ($type == "available") { echo "<{$dFrom} is online>\n\n"; } else { echo "<{$dFrom} is offline>\n\n"; } } echo "[] Logging in as '{$nickname}' ({$username})\n"; //Create the whatsapp object and setup a connection. $w = new WhatsProt($username, $identity, $nickname, $debug); $w->connect(); // Now loginWithPassword function sends Nickname and (Available) Presence $w->loginWithPassword($password); echo "[*] Connected to WhatsApp\n\n"; //Retrieve large profile picture. Output is in /src/php/pictures/ (you need to bind a function //to the event onProfilePicture so the script knows what to do. $w->eventManager()->bind("onGetProfilePicture", "onGetProfilePicture"); $w->sendGetProfilePicture($target, true); //Print when the user goes online/offline (you need to bind a function to the event onPressence //so the script knows what to do) $w->eventManager()->bind("onPresence", "onPresenceReceived"); //update your profile picture $w->sendSetProfilePicture("demo/venom.jpg"); //send picture $w->sendMessageImage($target, "demo/x3.jpg"); //send video //$w->sendMessageVideo($target, 'http://techslides.com/demos/sample-videos/small.mp4'); //send Audio //$w->sendMessageAudio($target, 'http://www.kozco.com/tech/piano2.wav'); //send Location //$w->sendLocation($target, '4.948568', '52.352957'); // Implemented out queue messages and auto msgid
$minutes = floor($minuteSeconds / $secondsInAMinute); // extract the remaining seconds $remainingSeconds = $minuteSeconds % $secondsInAMinute; $seconds = ceil($remainingSeconds); // return the value if ($seconds == null & $minutes == null & $hours == null & $days == null) { echo "El contacto tiene desactivado esta función"; } else { if ($seconds == 0 & $minutes == 0 & $hours == 0 & $days == 0) { echo "En línea"; } else { echo $days . " días " . $hours . " horas " . $minutes . " minutos"; } } } $w->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $w->sendGetRequestLastSeen($contacts); //This function only needed to show how eventmanager works. function onGetProfilePicture($from, $target, $type, $data) { if ($type == "preview") { $filename = "preview_" . $target . ".jpg"; } else { $filename = $target . ".jpg"; } $filename = WhatsProt::PICTURES_FOLDER . "/" . $filename; $fp = @fopen($filename, "w"); if ($fp) { fwrite($fp, $data); fclose($fp); }
echo "<{$dFrom} is online>\n\n"; } function onPresenceUnavailable($username, $from, $last) { $dFrom = str_replace(['@s.whatsapp.net', '@g.us'], '', $from); echo "<{$dFrom} is offline> Last seen: {$last} seconds\n\n"; } echo "[] Logging in as '{$nickname}' ({$username})\n"; //Create the whatsapp object and setup a connection. $w = new WhatsProt($username, $nickname, $debug); $w->connect(); // Now loginWithPassword function sends Nickname and (Available) Presence $w->loginWithPassword($password); //Retrieve large profile picture. Output is in /src/php/pictures/ (you need to bind a function //to the event onProfilePicture so the script knows what to do. $w->eventManager()->bind('onGetProfilePicture', 'onGetProfilePicture'); $w->sendGetProfilePicture($target, true); //Print when the user goes online/offline (you need to bind a function to the event onPressence //so the script knows what to do) $w->eventManager()->bind('onPresenceAvailable', 'onPresenceAvailable'); $w->eventManager()->bind('onPresenceUnavailable', 'onPresenceUnavailable'); echo "[*] Connected to WhatsApp\n\n"; //update your profile picture $w->sendSetProfilePicture('demo/venom.jpg'); //send picture $w->sendMessageImage($target, 'demo/x3.jpg'); //send video //$w->sendMessageVideo($target, 'http://techslides.com/demos/sample-videos/small.mp4'); //send Audio //$w->sendMessageAudio($target, 'http://www.kozco.com/tech/piano2.wav'); //send Location
echo " WhatsApp tracker v0.2 \n"; echo "====================================================\n\n"; if ($sender == "") { echo "\nEdit this file and add your account and password\n"; exit(0); } echo "[*] Logging in as WhatsApp Tracker ({$sender})\n"; $wa = new WhatsProt($sender, 'WhatsApp Tracker', FALSE); $wa->connect(); try { $wa->loginWithPassword($password); } catch (Exception $e) { echo "Bad authentication: Bad password or blocked account"; } $events = new MyEvents($wa); $wa->eventManager()->bind("onPresenceAvailable", "onPresenceAvailable"); $wa->eventManager()->bind("onPresenceUnavailable", "onPresenceUnavailable"); echo "\n[-] Tracker mode (ON): Waiting the user to get online...\n"; $wa->SendPresenceSubscription($target); $wa->pollMessage(); if ($presence == "available") { echo "- The user is now online\n\n"; } else { echo "- The user is offline\n\n"; } $lastpresence = ""; while (true) { $wa->pollMessage(); if ($lastpresence == "available" && $presence == "unavailable") { $timeOffline = date("Y-m-d H:i:s"); while ($presence == "unavailable") {
return trim(fgets($pStdn, 1024)); } return null; } function onPresenceReceived($username, $from, $type) { $dFrom = str_replace(array("@s.whatsapp.net", "@g.us"), "", $from); if ($type == "available") { echo "<{$dFrom} se ha conectado>\n\n"; } else { echo "<{$dFrom} se ha desconectado>\n\n"; } } echo "[] Iniciando sesion como '{$nickname}' ({$username})\n"; $w = new WhatsProt($username, $identity, $nickname, false); $w->eventManager()->bind("onPresence", "onPresenceReceived"); $w->connect(); // Nos conectamos a la red de WhatsApp $w->loginWithPassword($password); // Iniciamos sesion con nuestra contraseña echo "[*]Conectado a WhatsApp\n\n"; $w->sendGetServerProperties(); // Obtenemos las propiedades del servidor $w->sendClientConfig(); // Enviamos nuestra configuración al servidor $sync = array($target); $w->sendSync($sync); // Sincronizamos el contacto $w->pollMessages(); // Volvemos a poner en cola mensajes $w->sendPresenceSubscription($target);
} //format message $msg = "<a href='{$fulluri}' target='_blank'><img src='{$previewuri}' /></a>"; //insert message session_start(); $in = $_SESSION['inbound']; $in[] = $msg; $_SESSION['inbound'] = $in; session_write_close(); } require_once '../../src/whatsprot.class.php'; $target = @$_POST['target']; $username = '******'; $password = '******'; $w = new WhatsProt($username, 0, 'WhatsApi AJAX Demo', true); $w->eventManager()->bind('onGetImage', 'onGetImage'); $w->eventManager()->bind('onGetProfilePicture', 'onGetProfilePicture'); $w->connect(); $w->loginWithPassword($password); $initial = @$_POST['initial']; if ($initial == 'true' && $target != null) { //request contact picture only on first call $w->sendGetProfilePicture($target); } //subscribe contact status $w->SendPresenceSubscription($target); //TODO: presense handling (online/offline/typing/last seen) while (running($time)) { while ($w->pollMessage()) { } running($time);
function setupWhatsappHandler() { global $wa, $whatsappAuth; // bind event handler & tracker_login // Setup new Whatsapp session // change the "false" to "true" if you want debug information about the WhatsApp connection. $wa = new WhatsProt($whatsappAuth['number'], "WhatsApp", $whatsappAuth['debug']); $wa->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $wa->eventManager()->bind('onGetError', 'onGetError'); $wa->eventManager()->bind('onDisconnect', 'onDisconnect'); $wa->eventManager()->bind("onPresenceAvailable", "onPresenceAvailable"); $wa->eventManager()->bind("onPresenceUnavailable", "onPresenceUnavailable"); $wa->eventManager()->bind("onGetStatus", "onGetStatus"); $wa->eventManager()->bind('onGetSyncResult', 'onSyncResultNumberCheck'); $wa->eventManager()->bind("onGetProfilePicture", "onGetProfilePicture"); $wa->eventManager()->bind("onPing", "onPing"); $wa->eventManager()->bind("onSendPong", "onSendPong"); $wa->connect(); $wa->loginWithPassword($whatsappAuth['secret']); }
//echo ."/".."/". ; $wa = new WhatsProt($_POST['mobile'], $_POST['imei'], $_POST['nickname'], false); $wa->eventManager()->bind("onCodeRequest", "enriver_onCodeRequest"); $wa->connect(); $wa->codeRequest(); for ($i = 0; $i < 5; $i++) { $wa->pollMessages(); } $content = "<h2>You will get 6 digit code on your mobile,Enter the 6 digit code here (without dash)"; $content .= "<form method='post' action='" . elgg_get_site_url() . "enriver/setup/whatsapp/{$segments['2']}/3'>"; $content .= "<input type='text' name='code'>"; $content .= "<input type='submit' name='submit'></form>"; } elseif ($step == '3') { require elgg_get_plugins_path() . 'enriver/vendors/whatsapi/whatsprot.class.php'; $wa = new WhatsProt($group->whatsapp_mobile, $group->whatsapp_imei, $group->whatsapp_name, false); $wa->eventManager()->bind("onCodeRegister", "enriver_onCodeRegister"); $wa->connect(); $wa->codeRegister($_POST['code']); for ($i = 0; $i < 5; $i++) { $wa->pollMessages(); } $content = "<h2>Send Test message to other phone number,(make sure other phone has " . $group->whatsapp_mobile . " in contact. "; $content .= "<form method='post' action='" . elgg_get_site_url() . "enriver/setup/whatsapp/{$segments['2']}/4'>"; $content .= "<label>Mobile Number </label> <input type='text' style='width:400px;' name='testmobile'>"; $content .= "<br><input type='submit'class='elgg-button elgg-button-action' name='submit'></form>"; } elseif ($step == '4') { // echo $group->whatsapp_mobile."".$group->whatsapp_password; require elgg_get_plugins_path() . 'enriver/vendors/whatsapi/whatsprot.class.php'; $wa = new WhatsProt($group->whatsapp_mobile, $group->whatsapp_imei, $group->whatsapp_name, false); $wa->connect(); $wa->loginWithPassword($group->whatsapp_password);
pcntl_exec($_, $argv); }; set_exception_handler($restartMyself); register_shutdown_function($restartMyself); pcntl_signal(SIGTERM, $restartMyself); // kill pcntl_signal(SIGHUP, $restartMyself); // kill -s HUP or kill -1 // pcntl_signal(SIGINT, $restartMyself); // Ctrl-C echo "[{$ke}][" . date('H:i:s') . "] ----------------------------------------------------\n"; echo "[{$ke}][" . date('H:i:s') . "] - Login sebagai '{$nickname}' ({$username})\n"; cek_konek(); $w = new WhatsProt($username, $nickname, $debug); // bind events ------------------------------------------------------------------------------------------------------ // list semua event --> https://github.com/WHAnonymous/Chat-API/wiki/WhatsAPI-Documentation#list-of-all-events $w->eventManager()->bind("onConnect", "onConnect"); $w->eventManager()->bind("onDisconnect", "onDisconnect"); $w->eventManager()->bind("onClose", "onClose"); $w->eventManager()->bind("onGetMessage", "onGetMessage"); $w->eventManager()->bind("onGetGroupMessage", "onGetGroupMessage"); // konek ------------------------------------------------------------------------------------------------------------ sleep(3); $w->connect(); $w->loginWithPassword($password); $w->sendGetServerProperties(); $w->sendClientConfig(); $w->sendGetGroups(); $w->sendPing(); // poll message loop ------------------------------------------------------------------------------------------------ while (1) { if ($poll == 5) {
function setupWhatsappHandler() { global $wa, $whatsappAuth; //bind event handler & login // Setup new Whatsapp session $wa = new WhatsProt($whatsappAuth['number'], "", "WhatsApp", false); $wa->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $wa->eventManager()->bind('onGetError', 'onGetError'); $wa->eventManager()->bind('onDisconnect', 'onDisconnect'); $wa->eventManager()->bind("onPresence", "onPresenceReceived"); $wa->eventManager()->bind("onGetStatus", "onGetStatus"); $wa->eventManager()->bind('onGetSyncResult', 'onSyncResultNumberCheck'); $wa->eventManager()->bind("onGetProfilePicture", "onGetProfilePicture"); $wa->eventManager()->bind("onSendPong", "onSendPong"); $wa->connect(); $wa->loginWithPassword($whatsappAuth['secret']); }
<?php require_once 'src/whatsprot.class.php'; require 'src/events/MyEvents.php'; $debug = true; function onCredentialsBad($mynumber, $status, $reason) { if ($reason == 'blocked') { echo "\n\nYour number is blocked \n"; } if ($reason == 'incorrect') { echo "\n\nWrong identity. \n"; } } function onCredentialsGood($mynumber, $login, $password, $type, $expiration, $kind, $price, $cost, $currency, $price_expiration) { echo "\n\nYour number {$mynumber} with the following password {$password} is not blocked \n"; } echo "####################\n"; echo "# #\n"; echo "# WA Block Checker #\n"; echo "# #\n"; echo "####################\n"; echo "\n\nUsername (country code + number without + or 00): "; $username = trim(fgets(STDIN)); $w = new WhatsProt($username, '', $debug); $w->eventManager()->bind("onCredentialsBad", "onCredentialsBad"); $w->eventManager()->bind("onCredentialsGood", "onCredentialsGood"); $w->checkCredentials();
//add leading + $number = "+{$number}"; } $numbers[] = $number; } //event handler /** * @param $result SyncResult */ function onSyncResult($result) { foreach ($result->existing as $number) { echo "{$number} exists<br />"; } foreach ($result->nonExisting as $number) { echo "{$number} does not exist<br />"; } die; //to break out of the while(true) loop } $wa = new WhatsProt($username, "", "WhatsApp", false); //bind event handler $wa->eventManager()->bind('onGetSyncResult', 'onSyncResult'); $wa->connect(); $wa->loginWithPassword($password); //send dataset to server $wa->sendSync($numbers); //wait for response while (true) { $wa->pollMessage(); }
$row = mysql_fetch_array(mysql_query($select)); $dutynumber = $row['current_duty_number']; return $dutynumber; } function getGroupChats() { //Get duty number from MySQL $select = "SELECT group_code FROM `WAGroupChats` WHERE status='enable'"; return mysql_query($select); } echo "Current duty number is" . getDutyNumber() . "\n\n"; $w = new WhatsProt($username, $nickname, $debug); $GLOBALS["wa"] = $w; //$w->setMessageStore(new SqliteMessageStore($username)); $events = new MyEvents($w); $w->eventManager()->bind('onGetMessage', 'onGetMessage'); $w->eventManager()->bind('onGetGroupV2Info', 'onGetGroupV2Info'); $w->eventManager()->bind('onGetGroups', 'onGetGroups'); $w->eventManager()->bind('onGroupisCreated', 'onGroupisCreated'); $w->eventManager()->bind("onGetGroupMessage", "onGetGroupMessage"); $w->eventManager()->bind('onGetSyncResult', 'onSyncResult'); $w->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $w->eventManager()->bind('onPresenceAvailable', 'onPresenceAvailable'); $w->eventManager()->bind('onPresenceUnavailable', 'onPresenceUnavailable'); $w->eventManager()->bind('onGetImage', 'onGetImage'); $w->eventManager()->bind('onGetVideo', 'onGetVideo'); $w->eventManager()->bind('onGetAudio', 'onGetAudio'); $w->connect(); try { $w->loginWithPassword($password); } catch (Exception $e) {
/** * Execute the console command. * * @return mixed */ public function fire() { if (!$this->argument('number')) { return $this->error('No number specified.'); } $number = Number::where('number', $this->argument('number'))->first(); if (is_null($number) || is_null($number->wa_password) || is_null($number->wa_expiration)) { return $this->error('Whatsapp not registered. Run php artisan whatsapp:register'); } $contacts = $number->contacts->map(function ($contact) { return $contact->number; }); $wa = new WhatsProt($number->number, $number->number, true); $wa->connect(); // Connects to WhatsApp $wa->loginWithPassword($number->wa_password); // Login $wa->pollMessage(); $wa->sendGetPrivacyBlockedList(); // Get our privacy list $wa->sendGetClientConfig(); // Get client config $wa->sendGetServerProperties(); // Get server properties if (!$contacts->isEmpty()) { $wa->sendGetHasVoipEnabled($contacts); } // Get which users have voip enabled $wa->sendGetGroups(); // Get groups (participating) $wa->sendGetBroadcastLists(); // Get broadcasts lists // $wa->sendGetProfilePicture(self); // self preview profile picture [OPTIONAL] if (!$contacts->isEmpty()) { $wa->sendSync($contacts); } // Sync all contacts // $wa->sendGetStatuses(All contacts); // Get contacts status [OPTIONAL] /* for (All contacts) [OPTIONAL] { $wa->sendGetProfilePicture(contact); // preview profile picture of every contact } */ // $wa->sendPing(); // Keep alive $wa->eventManager()->bind("onGetMessage", function ($mynumber, $from, $id, $type, $time, $name, $body) { // todo // save message id and compare to avoid duplicate $inbound = new Inbound(); $inbound->from = $this->getFrom($from); $inbound->to = $mynumber; $inbound->text = $body; $inbound->type = 'whatsapp'; $inbound->save(); }); $wa->eventManager()->bind("onPresenceAvailable", function ($mynumber, $from) { $from = $this->getFrom($from); // todo // add or update wa-contact }); $wa->eventManager()->bind("onPresenceUnavailable", function ($mynumber, $from, $last) { $from = $this->getFrom($from); // todo // add or update wa-contact }); $wa->eventManager()->bind("onMessageReceivedClient", function ($mynumber, $from, $id) { $outbound_chunk = OutboundChunk::where('message_id', $id)->first(); if (!$outbound_chunk) { return; } $outbound_chunk->dn_error_code = 0; $outbound_chunk->dn_status = 'delivered'; $outbound_chunk->save(); }); $time = time(); while (true) { sleep(1); $wa->pollMessage(); $this->processMessages($wa); if (time() - $time >= 8) { $wa->sendActiveStatus(); $time = time(); // whatsapp command action $whatsAppAction = Cache::get('whatsAppAction_' . $number->number, false); if ($whatsAppAction) { $whatsAppActionInput = Cache::get('whatsAppActionInput_' . $number->number, false); Cache::forget('whatsAppAction_' . $number->number); Cache::forget('whatsAppActionInput_' . $number->number); switch (strtolower($whatsAppAction)) { case 'updatestatus': $wa->sendStatusUpdate($whatsAppActionInput); break; case 'setprofilepicture': try { $wa->sendSetProfilePicture($whatsAppActionInput); } catch (Exception $e) { } break; case 'stop': $wa->disconnect(); exit('whatsapp is stopped'); } } // end whatsapp command action } } }
} $filename = WhatsProt::PICTURES_FOLDER . "/" . $filename; $fp = @fopen($filename, "w"); if ($fp) { fwrite($fp, $data); fclose($fp); } } //Create the whatsapp object and setup a connection. $w = new WhatsProt($username, $identity, $nickname, $debug); $w->connect(); // Now loginWithPassword function sends Nickname and (Available) Presence $w->loginWithPassword($password); //Retrieve large profile picture. Output is in /src/php/pictures/ (you need to bind a function //to the event onProfilePicture so the script knows what to do. $w->eventManager()->bind("onGetProfilePicture", "onGetProfilePicture"); $w->sendGetProfilePicture($target, true); //update your profile picture $w->sendSetProfilePicture("demo/venom.jpg"); //send picture $w->sendMessageImage($target, "demo/x3.jpg"); //send video //$w->sendMessageVideo($target, 'http://techslides.com/demos/sample-videos/small.mp4'); //send Audio //$w->sendMessageAudio($target, 'http://www.kozco.com/tech/piano2.wav'); //send Location //$w->sendLocation($target, '4.948568', '52.352957'); // Implemented out queue messages and auto msgid $w->sendMessage($target, "Sent from WhatsApi at " . time()); /** * You can create a ProcessNode class (or whatever name you want) that has a process($node) function
$query = $db->prepare($sql); $query->execute([':username' => $number, ':password' => $pw, ':nickname' => $nickname, ':login' => '1']); } $db = new \PDO('sqlite:' . $fileName, null, null, [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); $sql = 'SELECT username, password, nickname, login FROM data'; $row = $db->query($sql); $result = $row->fetchAll(); $username = $result[0]['username']; $password = $result[0]['password']; $nickname = $result[0]['nickname']; $login = $result[0]['login']; $w = new WhatsProt($username, $nickname, $debug); $GLOBALS['wa'] = $w; $w->setMessageStore(new SqliteMessageStore($username)); $events = new MyEvents($w); $w->eventManager()->bind('onGetSyncResult', 'onSyncResult'); $w->eventManager()->bind('onGetRequestLastSeen', 'onGetRequestLastSeen'); $w->eventManager()->bind('onPresenceAvailable', 'onPresenceAvailable'); $w->eventManager()->bind('onPresenceUnavailable', 'onPresenceUnavailable'); $w->eventManager()->bind('onGetImage', 'onGetImage'); $w->eventManager()->bind('onGetVideo', 'onGetVideo'); $w->eventManager()->bind('onGetAudio', 'onGetAudio'); $w->connect(); try { $w->loginWithPassword($password); } catch (Exception $e) { echo "Error: {$e}"; exit; } echo "\nConnected to WA\n\n"; if ($login == '1') {
return trim(fgets($pStdn, 1024)); } } function onPresenceAvailable($username, $from) { $dFrom = str_replace(['@s.whatsapp.net', '@g.us'], '', $from); echo "<{$dFrom} is online>\n\n"; } function onPresenceUnavailable($username, $from, $last) { $dFrom = str_replace(['@s.whatsapp.net', '@g.us'], '', $from); echo "<{$dFrom} is offline>\n\n"; } echo "[] logging in as '{$nickname}' ({$username})\n"; $w = new WhatsProt($username, $nickname, $debug); $w->eventManager()->bind('onPresenceAvailable', 'onPresenceAvailable'); $w->eventManager()->bind('onPresenceUnavailable', 'onPresenceUnavailable'); $w->connect(); // Nos conectamos a la red de WhatsApp $w->loginWithPassword($password); // Iniciamos sesion con nuestra contraseña echo "[*]Conectado a WhatsApp\n\n"; $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
<html> <head> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css" /> </head> <body> <div class="panel panel-default"> <div class="panel-heading">Console</div> <div class="panel-body jumbotron"> <?php require_once 'src/whatsprot.class.php'; require_once 'whatsapp_config.php'; require_once 'whatsapp_events.php'; $w = new WhatsProt($userPhone, $userIdentity, $userName, $debug); $w->eventManager()->bind("onGetMessage", "onGetMessage"); echo "<b>Connecting...</b>"; $w->Connect(); echo "<b>Logging in...</b><br/>"; $w->LoginWithPassword($password); echo "<b>Connecting to database...</b>"; $dbservername = "us-cdbr-iron-east-01.cleardb.net"; $dbusername = "******"; $dbpassword = "******"; $dbname = "heroku_3d91432389d0eb8"; $conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } while (true) { echo "<b>Polling...</b><br/>"; $w->pollMessage();