3

I've been using Chat-API (https://github.com/WHAnonymous/Chat-API) since it was WhatsAPI, and yet I don't know for sure how to receive messages properly.

Right now, I have a cron file that runs once every minute with this basic structure:

$wa = new WhatsProt($WA_NUMBER, $WA_NICKNAME);
$wa->connect();
$wa->loginWithPassword($WA_PASSWORD);
$wa->pollMessage();
$data = $wa->getMessages();
foreach ($data as $item) {
    $from_number = $item->getAttribute("from");
    $from_nickname = $item->getAttribute("notify");
    if ($item->getAttribute("type") == "text") {
        $msg = $item->getChild("body")->getData();
    } else {
        $msg = $item->getChild("media")->getAttribute("url");
    }
    ...
}
$wa->disconnect();

I've also tried running a PHP script constantly in the background like this:

while (true) {
    $wa->pollMessage();
    $data = $wa->getMessages();
    ...
}

The first option is more reliable than the second one, but neither is the right solution.

Is there any way making use of sockets to connect to Whatsapp servers as a phone would do? I mean, open a socket and keep it open, triggering a function every time a new message is received (using XMPP protocol).

josemmo
  • 6,523
  • 3
  • 35
  • 49

0 Answers0