用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文件进行一些调整:

^{pr2}$

如您所见,我们正在使用一个无服务器插件来打包和发送我们的依赖项以及telegram bot逻辑。您可以在official docs中阅读有关此插件的更多信息。在

完成所有步骤后,我们就可以使用sls deploy来部署我们的解决方案。阅读有关deploying our functionsdeployment best practices的更多信息。在

还有。。。就这些了,伙计们!

我们祝你编码愉快。如果你有疑问,建议,改进,分享你的经验或只是想说“嗨!”请随时与我们联系

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
插入表达式以完成JAVA语句块时出现语法错误   在linkedlist中的特定节点后插入java   java如何将参数传递给安卓 junit测试(参数化测试)   java在运行时将数据添加到片段中的RecyclerView,在该片段中,数据是在单独的片段中创建的   java apache CsrfPreventionFilter和404错误   java Ask是安卓 6.0的多重权限   java将字符串解析为Time并插入mysqldatabase   java扩展MyBatis映射器接口可能导致异常   java SparkSql不支持日期格式   在java中剪切字符串的一部分   将Java lambda的结果分配给字段   在Java中解析OCL?   java解析json到安卓中活动中的对象   用于时区转换的JavaAPI   在Oracle上建立与ESRI geodatabase直接连接的java在未处于调试模式时挂起   拆分文件时出错。使用Java8的xml文件   java eclipse jsp无颜色、代码完成和错误检测   java spring kafka侦听器在错误的位置查找ContainerProperty   java Springboot应用程序@EnableConfigServer无法在Eclipse中解析   当尝试使用ConstraintLayout将java视图添加到同一行时,java视图会被截断