我已经搜索了几天的Telegram API和Bot API文档,并且当新闻频道,体育频道等频道中出现新的更新时,似乎没有直接的方法可以让机器人得到通知。 我想到的唯一一件事是: 钩子仅在机器人是管理员成员时才返回频道的更新:
{
"update_id": 673009340,
"message": {
"message_id": 160,
"from": {
"id": 104911111,
"is_bot": false,
"first_name": "Jason",
"username": "jason",
"language_code": "en-US"
},
"chat": {
"id": -252946114,
"title": "jason",
"type": "group",
"all_members_are_administrators": true
},
"date": 1538468757,
"photo": [
{
"file_id": "AgADBAADFa4xG972mVHqJ-CSWQTFky4lnRoABNEgOrZpJU-OyDgFAAEC",
"file_size": 1795,
"width": 90,
"height": 90
},
{
"file_id": "AgADBAADFa4xG972mVHqJ-CSWQTFky4lnRoABB4OwmYVnYcOyTgFAAEC",
"file_size": 32559,
"width": 320,
"height": 320
},
{
"file_id": "AgADBAADFa4xG972mVHqJ-CSWQTFky4lnRoABIZfLEHYC_NVyjgFAAEC",
"file_size": 159833,
"width": 770,
"height": 770
}
]
}
}
我知道我无法将机器人添加到我不拥有的频道中。但是,我可以将用户名jason
添加到几乎所有频道。因此,有jason_bot
可用的新更新时,有没有办法让我的jason
收到通知?
答案 0 :(得分:2)
机器人无法与渠道互动,除非他们是渠道的管理员之一。
如果要从其他人的频道接收更新,则必须充当客户端用户而不是漫游器。如果您以会员身份加入频道,则可以轻松接收更新。但是,您可以在不成为成员的情况下检查任何公共频道的更新。首先,您解析频道@username并获得(id, access_hash)
对。然后,您可以访问所有消息,并手动检查数据库是否有新内容。