有没有办法发送输入文本到运行在Heroku上的python电报机器人?

kkih6yb8  于 2022-11-13  发布在  Python
关注(0)|答案(2)|浏览(107)

我用Python构建了一个Telegram机器人,并部署在Heroku上。
应用程序通过webhook与Telegram交互,然后等待控制台输入,以便执行其他命令。
应用程序工作正常,但我不知道如何发送使 input 命令接收文本,一旦应用程序部署在Heroku上
这是脚本的主要功能:

import os

import telegram
from telegram.ext import CallbackContext
from telegram.ext import MessageHandler, Filters
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, KeyboardButton, ReplyKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler

PORT = os.environ.get('PORT', 8443)

token = 'MY-TOKEN'
updater = Updater(token=token, use_context=True)
dispatcher = updater.dispatcher

def start_func(update: Update, context: CallbackContext):
   ...do something when /start is received ...
def message_func(update: Update, context: CallbackContext):
   ...do something when message is received ...
            
dispatcher.add_handler(MessageHandler(Filters.text & (~Filters.command), message_func))
dispatcher.add_handler(CommandHandler('start', start_func))

updater.start_webhook(listen="0.0.0.0",
                              port=int(PORT),
                              url_path=test_token,
                                  webhook_url=f'https://{appname}.herokuapp.com/{test_token}')
while (True):
    print("Enter a command: ")
    command = input()
    if command == "test":
        .... do something ...
zzoitvuj

zzoitvuj1#

很遗憾,在Heroku里你不能直接辩论。
但是,这里有一些方法/黑客你可以实现你的目标.

  • 从电报本身取参数-〉你可以很容易地从电报本身取参数。如果你担心安全性,为什么不通过比较用户ID只给特定用户访问权限,并制作一个像令牌系统一样的管理员。
  • 使用web Jmeter 板-〉你可以很容易地做一个web Jmeter 板来做到这一点。实体可以发送请求到heroku应用程序的网址,并给予输入。

我强烈建议您创建一个网络 Jmeter 板与令牌系统,这似乎非常有效和安全!

wlzqhblo

wlzqhblo2#

你可以在任何地方试试pythonwhere,它在那里工作正常

相关问题