我在这里寻求帮助。 我正在尝试使用 MadelineProto 使用带有代码的用户 ID 从 Telegram 中的多个聊天中获取消息:
require 'vendor\autoload.php';
$settings[ 'logger' ][ 'logger' ] = 0;
$settings[ 'serialization' ][ 'serialization_interval' ] = 30;
$MadelineProto = new API('session.madeline', $settings);
$MadelineProto->async(true);
$MadelineProto->start();
$chat_one = 1234567;
$chat_two = 3254682;
$chat_three = 154789965;
function getMessagesById($u_id, $MadelineProto){
$offset_id = 0;
$limit = 100;
do {
$messages_Messages = $MadelineProto->messages->getHistory(
['peer' =>$u_id,
'offset_id' => $offset_id,
'offset_date' => 0,
'add_offset' => 0,
'limit' => $limit,
'max_id' => 0,
'min_id' => 0,
'hash' => 0 ]
);
if (count($messages_Messages['messages']) == 0) break;
print_r($messages_Messages);
$offset_id = end($messages_Messages['messages'])['id'];
yield $MadelineProto->sleep(3);
} while (true);
}
getMessagesById($chat_one , $MadelineProto);
getMessagesById($chat_two , $MadelineProto);
getMessagesById($chat_three , $MadelineProto);
但这不会返回任何消息。我通过将 async 设置为 false 来尝试它,我只收到第一个函数调用的消息,而不是其他两个。
这里有什么想法,我缺少什么?
我真正追求的只是从特定联系人那里获取消息,上面的代码只针对一个联系人将 async 设置为 false。我使用 ajax 每 10 秒刷新一次新消息,但有时它返回空,所以任何更好的主意将不胜感激。我浏览了文档,但对获取消息没有任何帮助,都是 sendMessage。
谢谢