用Python编写的AWS电报机器人的Microhelper
telegram-envelope的Python项目详细描述
电报信封
用Python编写的AWS电报机器人的微型助手
电报信封工程是什么
这是一个小的Python库,用于管理AWS Lambda上的telegrambot的请求和响应,通过awsapi网关由web钩子调用。在
它解析传入的请求,以便向bot处理一个简化的摘要请求。它还管理响应的创建,省去了所有相关的样板文件,允许开发人员专注于他们的主要任务:bot逻辑。在
如何使用它
我们强烈建议使用Serverless framework来创建与AWS Lambda一起工作的电报机器人程序。在
查看"Hello world" Python Serverless guide了解更多信息。然而,我们将在这里收集使用电报信封的重要步骤。在
创建一个无服务器的python项目
使用如下命令创建它sls create --template aws-python --path my-project-name
安装所需的依赖项
创建一个requirements.txt file
,在其上写入telegram-envelope
,并通过调用pip install -r requirements.txt
安装包。你可以在它的Pypi page上找到包裹。在
开始使用电报信封包
在你的handler.py
文件中,你会找到一个hello()
函数。电报信封包就要用了。您可以将此函数重命名为另一个名称(以及handler.py
文件),但不要忘记稍后在serverless.yml
文件上更改引用。在
我们可以这样使用它。在本例中,我们将hello()
函数重命名为app()
函数,并使用bot逻辑实现一个函数my_app_logic()
:
fromtelegram_envelope.simple_text_botimportWebHookTextBot,InputMessagedefmy_app_logic(input_message:InputMessage)->(str,bool):"""This is your telegram bot logic. It receives an InputMessage object. It contains: - input_message.chat_id (int): The id of the chat where the message comes from - input_message.text (str): The raw incoming text - input_message.message_id (int): The id of the incoming message (for us to decide to reply to it or not) It must return a tuple with: - A str: bot response text - A bool: whether to reply to the incoming message or not """returnf"You said '{input_message.text}'",Truedefapp(event,context):"""This is your entry point. We must initialize the WebHookTextBot with the raw event, and then we can run our logic, handling a function with a specific signature. See the my_app_logic() function above. """returnWebHookTextBot(event).run(my_app_logic)
准备上线!
一旦我们开发了我们的逻辑(并进行了测试!)我们可以对serverless.yml
文件进行一些调整:
如您所见,我们正在使用一个无服务器插件来打包和发送我们的依赖项以及telegram bot逻辑。您可以在official docs中阅读有关此插件的更多信息。在
完成所有步骤后,我们就可以使用sls deploy
来部署我们的解决方案。阅读有关deploying our functions和deployment best practices的更多信息。在
还有。。。就这些了,伙计们!
我们祝你编码愉快。如果你有疑问,建议,改进,分享你的经验或只是想说“嗨!”请随时与我们联系
- 项目
标签: