大家好,今天来为大家分享服务器软件网站源码分享的一些知识点,和服务器软件网站源码分享怎么弄的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
Slack是学习如何使用事件驱动的后端“无服务器”应用程序的好方法。当您使用无服务器时,您只需为需要通过您的应用程序每秒处理的事件数量付费,而不是让服务器启动并等待这些事件。
尽管Lolo的工作方式略有不同,但她遵循了这个概念,所以在你必须每秒处理超过几千个事件之前,你根本不需要支付任何费用。这是令人难以置信的成本效益。
我们将构建一个HTTP回调,它将充当我们的Webhook,并将由Slack通过他们的Slash命令触发。这个想法是让您处理更复杂的事情,但这让您了解它是多么简单。我们会打乒乓球。看看我们下面的工作流程。
简要解释一下我们的Lolo工作流程。
我们首先在菜单面板中添加一个HTTP触发器,它将充当我们的Webhook。然后我们将在Response节点中发回一个带有200状态码的响应。这是为了确保我们快速将确认发送回Slack。最后,我们将使用从收到的有效负载中提取的response_url发送一个HTTP发布请求。
结果将是Slack中的/ping斜杠命令将以pong响应。
您需要管理员访问Slack工作区才能设置您的Slack应用程序,然后是免费的Lolo帐户。
设置你的Lolo应用和Webhook
我们需要一个Slack的请求URL,因此当有人使用/ping命令时,Slack可以向我们发送一个事件。因此,我们将首先设置我们的Lolo应用程序。
在Lolo中创建一个新应用程序并在菜单面板中添加一个HTTP触发器。一旦你在你的图表中双击它,你就可以配置它。
我们将通过“参数”选项卡将其设置为POST请求,并将端点设置为/slack。您也可以将节点重命名为SlackWebhook,但这是可选的。设置路径后,复制为您设置的外部URL。
我们现在已经设置了触发器,它将触发这个应用程序。您可以保存您的应用程序,但还不需要运行它。
设置您的Slack应用程序
通过api.slack.com设置一个新应用程序。你可以随心所欲地称呼它。您将需要对要为其安装Slack工作区的管理员访问权限。
创建应用程序后,转到Slash命令,您将在其中设置新命令。使用您刚刚从Lolo应用程序复制的URL。
请记住也将应用程序安装到您的工作区。导航到您的Slack应用程序的基本设置以执行此操作。每当您添加斜杠命令时,您都需要将应用程序重新安装到您的工作区。
响应HTTP调用
Slack命令将期望在3秒内得到响应,因此当对您的URL进行HTTP调用时,首先要做的是在Lolo应用程序中发出带有200状态代码的响应。
Slack将向我们发送带有有效负载对象的数据,我们可以使用它来响应。也就是说,我们不直接响应斜杠命令,我们只是提取response_url以便我们稍后可以通过POST请求发回对消息的响应。这也允许您在回答之前进行更多处理。
首先在您的Lolo应用程序中创建一个新函数,然后在其处理程序中添加以下代码。
exports.handler=async(ev,ctx)=>{\nconst{emit,log,route}=ctx;\n\n//sendbackaresponsetoSlack\nemit(&39;,{statusCode:&39;});\n\n//LogcontentsofthepayloadSlackhassentus\nlog.info(&34;,ev.body);\n\n//routethepayloaddatatothenextfunction/node\nroute(ev.body);\n};
通过像使用route(ev.body)一样将Slack有效负载数据路由到下一个函数,我们可以在下一个节点/函数中提取response_url。这个Slack应用程序只做两件事,因此我们不需要从有效负载中提取太多内容,但是当您构建更丰富的Slack应用程序时,您将希望提取有关命令的更多信息,而不仅仅是response_url,因此我们将路由整个有效载荷。
请记住,还要将HTTP触发器与您创建的新函数连接起来。需要连接节点以使代码能够在exports.handler中运行。
保存并运行您的应用程序。
如果您已将应用程序安装到您的Slack工作区,您现在可以测试您在Slack中设置的命令。它不会给你任何回报,但只要它不给你一个错误,你就知道它正在工作。
向Slack发回响应
我们需要做的最后一件事是使用该response_url向Slack发送一个HTTPPOST请求以及我们对命令的回答。所以我们可以看到对/ping命令的pong响应。
在您的Lolo图中创建另一个新函数并添加以下代码。
constFetch=require(&34;);\n\nexports.handler=async(ev,ctx)=>{\nconst{log}=ctx;\nconstresponseURL=ev.response_url;\n\n//ourSlackresponse\nconstbody={\nreplace_original:&34;,\ntext:&34;\n};\n\n//sendbacktheSlackresponse\nFetch(responseURL,{\nmethod:&34;,\nbody:JSON.stringify(body),\nheaders:{&34;:&34;}\n}).catch(err=>log.info(err));\n};
我们还需要添加node-fetch@2.0作为依赖项,以便能够在我们的代码中使用它。在Lolo的应用程序设置中导航到模块,然后将其添加到那里。它将在您保存并运行您的应用程序时安装。
总而言之,如果您添加了新函数,在其处理程序中添加了上面的代码,在您的模块中添加了node-fetch@2.0并连接了所有节点,您可以再次保存并运行您的应用程序。
请注意,由于我们已经安装了依赖项,因此现在部署可能需要一分钟。在Logs中查找ListentoPort4000以查看它是否已成功部署。您可以来回更改标签,我们都可以。
测试您的Slack应用程序
打开您的Slack,然后再次尝试您的斜杠命令。我已经设置了/ping并且我的响应将是pong。看看下面的样子。
从这里您可以使用消息中的Slack操作添加到它,然后在用户与其交互时从有效负载事件中提取值。有关创建slack消息的帮助,请参阅Slack的BlockKit构建器。
关注七爪网,获取更多APP/小程序/网站源码资源!
关于服务器软件网站源码分享,服务器软件网站源码分享怎么弄的介绍到此结束,希望对大家有所帮助。
