【发布时间】:2018-12-28 19:06:33
【问题描述】:
我会在 ruby 中创建一个电报机器人,它会在我决定的特定时间发送消息。例如。现在是早上 8 点,机器人发送一条消息“早上好”。当然是每天早上的同一时间。这可能是一种提醒。我可以通过这种方式获取时间:
time = Time.now.strftime("%H:%M")
而且我知道要发送消息,我可以使用 Telegram API,例如:
bot.api.send_message(chat_id: message.chat.id, text: "Hi")
当我在机器人和用户之间进行交互时,我会使用此代码。例如:
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
case message.text
when "hi", 'hi@myBot'
bot.api.send_message(chat_id: message.chat.id, text: "Hi, #{message.from.first_name}")
end
....
....
但我不知道我需要怎么做,因为如果我想发送消息,我需要chat.id,在这种情况下,我只有在与用户交互时才能得到它。那么,是否可以在没有任何用户交互的情况下发送消息,例如在早上 8 点时发送消息?
【问题讨论】:
-
在没有交互的情况下发送消息的唯一方法是硬编码聊天 ID。您想向某个聊天室发送消息吗?
-
机器人可能存在于多个组中。我也许可以以某种方式存储聊天 ID,然后使用它,但我不知道这是否是正确的方式。你知道如何解决我的问题吗?
-
您有两个选择:存储 id 并通过 cron 任务发送消息,或者在收到每条消息后创建一个工作人员。它们都需要用户交互。
-
那么,很快,我就不能做我想做的事了吗?
标签: ruby chat bots telegram-bot reminders