【问题标题】:Getting messages from multiple chats madelineproto从多个聊天中获取消息madelineproto
【发布时间】:2021-10-04 11:16:33
【问题描述】:

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

谢谢

【问题讨论】:

    标签: php api chat telegram telegram-api


    【解决方案1】:

    需要转移对象:

    $inputChannel = ['_' => 'inputPeerChat', 'chat_id' => $u_id];
     ['peer' => inputChannel, 
    

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 2017-12-31
      • 1970-01-01
      • 2022-08-11
      • 2014-01-05
      • 2018-10-09
      相关资源
      最近更新 更多