我一直在使用 Chat-API ( https://github.com/WHAnonymous/Chat-API ),因为它是 WhatsAPI,但我不确定如何正确接收消息。
现在,我有一个每分钟运行一次的 cron 文件,其基本结构如下:
$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();
我也尝试过在后台不断运行 PHP 脚本,如下所示:
while (true) {
$wa->pollMessage();
$data = $wa->getMessages();
...
}
第一个选项比第二个选项更可靠,但都不是正确的解决方案。
有没有办法像电话一样使用套接字连接到 Whatsapp 服务器?我的意思是,打开一个套接字并保持打开状态,每次收到新消息时都会触发一个函数(使用 XMPP 协议)。