Telegram 我的机器人如何通过电报从用户处获取组id?

Telegram 我的机器人如何通过电报从用户处获取组id?,telegram,telegram-bot,python-telegram-bot,Telegram,Telegram Bot,Python Telegram Bot,我正在构建一个机器人,它必须从用户那里接收一个组作为输入,以便它知道用户想要哪个组执行一些X操作。怎么做 我也考虑过使用一些回调数据,但问题是我不希望用户在组中写入任何内容(是的,用户和机器人都在组中) 我还考虑将一个组(机器人所在的位置)中的所有用户输入一个数据库,然后询问用户想要哪个组,但使用telegram bot API仍然无法做到这一点 谢谢 每个群组聊天和单个聊天都有一个聊天id。只要聊天存在,它就不会改变。要了解聊天室id,您可以使用这样的机器人。它将始终使用他收到消息的聊天室的聊

我正在构建一个机器人,它必须从用户那里接收一个组作为输入,以便它知道用户想要哪个组执行一些X操作。怎么做

我也考虑过使用一些回调数据,但问题是我不希望用户在组中写入任何内容(是的,用户和机器人都在组中)

我还考虑将一个组(机器人所在的位置)中的所有用户输入一个数据库,然后询问用户想要哪个组,但使用telegram bot API仍然无法做到这一点


谢谢

每个群组聊天和单个聊天都有一个聊天id。只要聊天存在,它就不会改变。要了解聊天室id,您可以使用这样的机器人。它将始终使用他收到消息的聊天室的聊天室id进行应答:

from telegram.ext import Updater

def echo(bot, update):
    bot.sendMessage(chat_id=update.message.chat_id, text="Your chat ID is " + str(update.message.chat_id))

updater = Updater(token='BOT_TOKEN')
dispatcher = updater.dispatcher
dispatcher.add_handler(MessageHandler(Filters.text, echo))
要执行某些X操作,您可以使用此聊天id。它不会更改,因此您可以将它们作为变量存储在脚本中

如果您想让用户选择他想在哪个组中执行某个X操作,您首先需要知道用户所属的所有组。据我所知,没有办法通过电报收到这些信息。这是有道理的,否则bot所有者可能知道所有用户组。我怀疑这是任何用户想要的

在我看来,最好的方法是让用户指定组ID

def some_X_action(bot, update, args):
    if (len(args) <= 0):
        bot.sendMessage(chat_id=update.message.chat_id, text="usage: /Xaction groupID")
        return
    bot.sendMessage(chat_id=args[0], text="sending message in group with ID " + args[0])

dispatcher.add_handler(CommandHandler('Xaction', some_X_action, pass_args=True))
def一些操作(bot、update、args):

如果(len(args)您可以使用deep link请求用户将您的bot添加到组中;当用户选择组时,您将该组的聊天id链接到yout数据库中用户的聊天id;
下次您的用户想要执行任务时,只需显示所有链接的组。

问题是匿名性是应用程序的一部分,这有点破坏了它。这对第一个用户有效,其余用户我必须收听新的用户事件,但这可能不适用。。