用于创建应用程序的工具包
slackapptk的Python项目详细描述
Python3用于构建Slack应用程序的工具包
slackapptk
包用于促进Slack的开发
应用程序使用Python3和您选择的web框架。作为开发者
对于Python中的Slack应用程序,我希望有一个库可以让我完成两个
主要目标:
- 在
提供路由从^{em1}接收的消息的机制$api.slack.com网站到 我的应用程序中的正确代码。这个过程有时被称为回调 路由。在
在 - 在
创建/斜杠命令具有丰富的功能集,如 使用Python标准argparse包找到。在
在
注意:slapapptk包使用slackclient提供的Slack
不是替代品。也就是说,已经定义了widgets
在slackapptk.web
中,在slackclient中尚不可用;并且作为slackclient被更新
这些小部件将被折旧
注:对于SlackClient<;=2.5
如果您希望在Slack Client 2.5.0版本上进行开发,请使用分支v1
。在
TLDR;见工作示例
使用slackapptk
的文档目前正在开发中。那个
说你可以找到一个完整的使用FlaskWeb框架的工作示例
在example-slackapp;看到了吗
README.md更多详细信息。在
概述
Slack应用程序可以接收来自api.slack.com网站有很多原因 应用程序在api.slack.com网站门户。在
为此,README
将使用术语entrypoint:
- 用户输入了/斜杠命令
- 用户发起某种interactivity请求,例如单击一个按钮
- 用户启动下拉菜单,应用程序必须从外部源获取数据
- 用户选择了附加到松弛消息的action
- 应用程序收到一个Slack Event,这是它配置的订阅的结果
术语request指从中接收的消息api.slack.com网站由于 任何这些入口点。在
在应用程序中配置时api.slack.com网站门户,开发人员将 确定要调用的特定应用程序API路由。然后开发者需要 要使用自己选择的API框架编写prerequest代码处理程序, 例如烧瓶。在
要创建应用程序实例:
fromslackapptk.appimportSlackAppapp=SlackApp()app.config.token="<My app bot token value>"app.config.signing_secret="<My app signing secret"
您可以绑定特定于应用程序的代码来处理入站api.slack.com网站 使用以下内容的消息:
- 在
app.ic.<interactive-component>.on
-其中是以下内容之一block_actions
-绑定块操作请求的回调select
-要绑定外部菜单的回调,请选择填充view
-绑定视图提交的回调view_closed
-绑定视图的回调已关闭imsg
-将回调绑定到交互式消息附件(过时)dialog
-将回调绑定到对话框提交(过时)
- 在
在app.commands.register
-注册/slash命令解析器和回调处理程序 - 在
在app.events
-注册所有事件订阅
处理来自的入站邮件api.slack.com网站你需要调用其中一个应用程序
API路由处理程序上下文中的处理程序。例如,如果您定义
为您的/slash命令之一调用的API路由处理程序
app.handler_slash_command()
来处理消息。在
示例
slackapptk的主要动机是接收请求并将其定向到 特定于请求负载的应用程序入口点处理程序。考虑 一个示例,其中应用程序向用户显示一个包含 按钮,用户单击该按钮。应用程序代码在中创建按钮 一个块,然后将该块ID绑定到应用程序“交互式组件” 块ID的处理程序,如以下代码所示代码段:
^{pr2}$注册/回调机制也可以编码为decorator,用于 示例:
@app.ic.block_actions.on(block.block_id)defon_block_button(rqst:BlockActionRequest,action:ActionEvent):# this function is called when the app receives the request message from# api.slack.com when the User clicked the button.# send a message back to the User indicating the value of the buttonresp=Response(rqst)resp.send("button pressed, block vlaue is: %s",action.value)
- 项目
标签: