从多个聊天中获取消息 madelineproto

问题描述

在这里寻求帮助。 我正在尝试使用 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。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...