You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MadelineProto监听Telegram新订阅事件失败问题排查

问题分析与解决方案

你的代码无法监听到新用户订阅事件,主要有以下几个可能的原因和对应的解决办法:

1. 事件方法名错误

Telegram里单个用户加入/离开频道/群的更新类型是UpdateChatParticipant,而非UpdateChatParticipants(后者仅对应批量成员变动的极端场景,几乎不会触发)。你需要修改事件处理方法的名称:

public function onUpdateChatParticipant(array $update)
{
    print_r(__METHOD__);
    yield print_r($update);
}

2. 机器人权限不足

机器人必须是目标频道/超级群的管理员,并且要开启查看成员的权限(在频道设置的管理员权限列表里勾选)。没有这个权限的话,Telegram服务器根本不会给机器人推送成员变动的更新。

3. 未配置MadelineProto接收成员更新

默认情况下,MadelineProto可能不会主动接收成员变动类的更新,需要在Settings里明确指定允许接收的更新类型:

$settings = new Settings();
// 保留原有AppInfo配置代码
$appInfo = new Settings\AppInfo();
$appInfo->setApiHash(config('telegram.app.app_info.api_hash'))
->setApiId(config('telegram.app.app_info.api_id'));
$settings->setAppInfo($appInfo);

// 添加更新配置
$updateSettings = new Settings\Updates();
$updateSettings->setAllowedUpdates(['chat_participant', 'channel_post', 'message']);
$settings->setUpdates($updateSettings);

$api = new API(time(), $settings);

4. 确认运行模式

用botLogin登录时,MadelineProto是以Bot API模式运行,部分事件推送逻辑和普通用户账号不同,但只要权限配置正确,机器人账号完全可以正常监听成员变动事件。如果上述设置都生效仍无反应,可以尝试重启机器人并确认目标群/频道的成员变动操作是在设置完成后触发的。

内容的提问来源于stack exchange,提问作者Chirukin Bogdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:25:30