代码之家  ›  专栏  ›  技术社区  ›  Chadd Yasin Özcan

松弛API事件订阅以触发FireBase云函数

  •  1
  • Chadd Yasin Özcan  · 技术社区  · 6 年前

    目标

    我希望slack触发firebase cloud函数。

    示例:用户发送一条松弛消息,firebase cloud函数将消息的一部分写入firebase数据库。

    工具:slack api \事件订阅、googleapis、nodejs等。

    发行

    松弛文档 here 描述挑战响应要求。

    收到活动后,以明文形式回答挑战 属性值。

    但是,我不知道如何让FireBase知道Slack请求是经过授权的。对FireBase云函数的HTTP请求必须包括 FireBase标识 .我已经让googleapis完成了建立FireBase ID的工作,但我看不到一种方法来改变slack的初始验证请求(如果我需要提供ID的话)。

    使用SlackAPI触发FireBase的最佳方法是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Chadd Yasin Özcan    6 年前

    轻松验证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云函数URL

    TL;医生

    松弛指令:

    我们将在事件发生时向[您的]URL发送HTTP Post请求。尽快 当您输入一个URL时,我们会发送一个带有challenge参数的请求, 您的端点必须用挑战值来响应。

    云函数URL:

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

    要满足验证挑战,请在Slack的请求URL字段中输入您的FireBase云函数URL(上面的示例)。

    FireBase Cloud函数应返回 body 可宽延的请求。Slack找到了它需要的 request.body 并且应该验证您的URL。