1

目标

我希望 Slack 触发 Firebase 云功能。

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

工具:Slack API\Event Subscription、googleapis、nodejs等。

问题

此处的 Slack 文档描述了质询响应要求。

收到事件后,使用挑战属性值以纯文本形式响应。

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

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

4

1 回答 1

2

让 Slack 验证 Firebase URL 非常简单。

解决方案

谷歌 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 网址

tl;博士

松弛指令:

当事件发生时,我们将向 [您的] URL 发送 HTTP POST 请求。输入 URL 后,我们将发送带有质询参数的请求,并且您的端点必须以质询值进行响应。

云函数网址:

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

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

您的 Firebase 云函数应该返回bodySlack 请求。Slack 会在其中找到它需要的内容,request.body并且应该验证您的 URL。

于 2018-08-15T15:58:00.733 回答