【问题标题】:Slack API Event Subscription to trigger Firebase Cloud Functions用于触发 Firebase Cloud Functions 的 Slack API 事件订阅
【发布时间】:2018-12-18 18:01:15
【问题描述】:

目标

我希望 Slack 触发 Firebase 云功能。

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

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

问题

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

收到事件后,以明文形式回复挑战 属性值。

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

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

【问题讨论】:

  • 我建议在 Slack 和 Firebase 之间使用适配器,以确保请求在两个平台之间正确转换。
  • @ErikKalkoken 你能给我举个这种适配器的例子吗?这像 IFTTT 吗?
  • 可能,但由于这是一个开发者论坛,我的意思是开发和部署您自己的适配器
  • @ErikKalkoken 是的,我想留在 Google 的服务中,并可能编写自己的“适配器”。一个例子可以帮助我了解这是如何完成的。也许执行此“适应”的独立 Firebase 项目或单独的 Google Cloud 功能可以“适应”。寻找比“适应”这个词更多的东西。 :)

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


【解决方案1】:

让 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 网址

tl;博士

Slack 指令:

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

云函数网址:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2021-02-04
    • 2021-06-21
    • 1970-01-01
    • 2023-04-03
    • 2020-06-10
    相关资源
    最近更新 更多