Home Articles

Slack API事件订阅以触发Firebase Cloud 功能

Asked
Viewed 176 times
0

目标

我希望Slack触发Firebase Cloud 功能 .

示例:用户发送Slack消息,Firebase Cloud Functions将部分消息写入Firebase数据库 .

工具:Slack API \ Event Subscription,googleapis,nodejs等 .

问题

Slack文档here描述了质询响应要求 .

收到活动后,请使用挑战属性值以明文回复 .

但是,我不确定如何让Firebase知道Slack请求是否已获得授权 . 对Firebase Cloud 功能的HTTP请求必须包含 Firebase ID . 我看到了改变Slack初始验证请求的方法(如果我有一个ID提供)

使用Slack API触发Firebase的最佳方法是什么?

1 Answer

  • 1

    让Slack验证Firebase URL非常简单 .

    解决方案

    Google Firebase Cloud 功能

    import * as functions from "firebase-functions";
    
    export const helloSlack = functions.https.onRequest((request, response) => {
      if (request) {
        response.status(200).send(request.body);
      } else {
        console.log("Request Error...");
        throw response.status(500);
      }
    });
    

    步骤

    • 部署Firebase Cloud 功能

    • 转到https://api.slack.com/apps

    • 您的应用>事件订阅>启用事件

    • 开启活动

    • 输入您的Firebase Cloud 功能网址

    tl;博士

    松弛指示:

    当事件发生时,我们会向[您的] URL发送HTTP POST请求 . 输入URL后,我们将立即发送带有challenge参数的请求,并且您的终端必须使用质询值进行响应 .

    Cloud 功能网址:

    https://firebase-slack-adaptor.cloudfunctions.net/helloSlack

    要应对验证问题,请在Slack的“请求URL”字段中输入您的Firebase Cloud 功能URL(上面的示例) .

    您的Firebase Cloud 功能应该返回Slack请求的 body . Slack在 request.body 中找到它需要的内容并且应该验证您的URL .

Related