我正在用 python telebot 编写一个电报机器人,我编写了一个代码来检查一个人的频道订阅,该机器人是频道的所有者,它拥有所有权利,要检查的用户已经订阅了该频道。
@bot.callback_query_handler(func=lambda call: call.data in ['subscribe_to_channel'])
def process_subscribe_to_channel(call):
"""функция обрабатывающая кнопку подписаться при выводе стартового сообщения"""
user = bot.get_chat_member(channel_id, call.from_user.id)
if user and user.status in ['creator', 'administrator', 'member']:
bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=None)
select_role(call.message)
else:
bot.send_message(call.from_user.id, "Вы не подписались!")
由于某种原因,它在 user_id 上出现错误(对 Telegram API 的请求不成功。错误代码:400。描述:错误请求:找不到用户)。作为channel_id,我插入了从 getIDs 机器人收到的带减号的 ID,以及字符串格式的频道用户名 (@channelname),没有任何帮助。
问题已经结束,事实证明我将我的一个帐户与机器人混淆了,这就是为什么机器人没有权限,并且通常不在频道中:)