Slack API事件订阅可触发Firebase云功能

时间:2018-07-10 19:39:53

标签: firebase firebase-authentication google-cloud-functions slack-api

目标

我希望Slack触发Firebase Cloud Function。

示例:用户发送一条Slack消息,然后Firebase Cloud Functions将消息的一部分写入Firebase数据库。

工具:Slack API \事件订阅,googleapis,nodejs等

问题

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

  

收到活动后,以纯文本形式答复挑战   属性值。

但是,我不确定如何让Firebase知道Slack请求已获得授权。对Firebase Cloud Functions的HTTP请求必须包含 Firebase ID 。我已经让googleapis完成了设置Firebase ID的工作,但没有看到改变Slack的初始验证请求的方法(如果我有ID的话)

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

1 个答案:

答案 0 :(得分:2)

让Slack验证Firebase URL非常简单。

解决方案

Google Firebase云功能

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);
  }
});

步骤

  1. 部署Firebase云功能
  2. 转到https://api.slack.com/apps
  3. 您的应用>事件订阅>启用事件
  4. 打开事件
  5. 输入您的Firebase Cloud Functions URL

tl; dr

松弛说明:

  

事件发生时,我们会将HTTP POST请求发送到[您的] URL。尽快   当您输入网址时,我们将发送带有质询参数的请求,   并且您的端点必须以挑战值作为响应。

云功能网址:

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

要应对验证挑战,请在Slack的“请求URL”字段中输入您的Firebase Cloud Functions URL(上面的示例)。

您的Firebase Cloud Function应该返回Slack请求的body。 Slack在request.body中找到了所需内容,并应验证您的URL。