gpt4 book ai didi

javascript - 带有 Bolt for JavaScript 和 OAuth 2.0 的 Slack Bot 与其他工作区共享应用程序

转载 作者:行者123 更新时间:2023-12-04 10:03:30 28 4
gpt4 key购买 nike

我使用 Bolt for Javascript 添加了一个带有添加到 Slack 按钮的应用程序。 Slack 命令还不起作用,因为我还没有带有身份验证 token 的数据库。我计划实现它,但意识到我从未看到控制台日志。

所以根据我的理解,console.log("authorizeFn") 应该可以工作

const { App, ExpressReceiver } = require("@slack/bolt");;

const expressReceiver = new ExpressReceiver({
signingSecret: process.env.SLACK_SIGNING_SECRET,
endpoints: "/events"
});

const authorizeFn = async ({ teamId }) => {
//Implement query of database looking for teamId, getting auth token...

console.log("authorizeFn") //This one never logs???
};

const app = new App({
authorize: authorizeFn,
receiver: expressReceiver
});

const app_express = expressReceiver.app;

如果用户被授权,它应该检查每个事件,对吗?

代码是这样继续的
/* Page with add button, can be implemented in website instead */
app_express.get("/auth/add", (req, res, next) => {
res.write(
'<a href="https:/...'
);
res.end();
});
app_express.get("/auth/direct", (req, res, next) => {
res.redirect(
"https://slack...."
);
res.end();
});
/* Thanks for installing! */
app_express.get("/auth/thanks", (req, res, next) => {
res.write("Thanks for installing!");
res.end();
});

/* oauth callback function */
app_express.get("/auth/callback", (req, res, next) => {
let code = req.query.code;

let state = req.query.state;

return app.client.oauth.v2
.access({
client_id: process.env.SLACK_CLIENT_ID,
client_secret: process.env.SLACK_CLIENT_SECRET,
code: code
})
.then(async result => {
console.log(result);
// save result of oauth.access call somewhere, like in a database.

res.redirect(process.env.BASE_DOMAIN + "/auth/thanks");
res.end();
})
.catch(error => {
throw error;
});
});

控制台日志(结果);记录一些有用的东西,看起来像 teamIds、Users 和 token

最佳答案

它必须是

const expressReceiver = new ExpressReceiver({
signingSecret: process.env.SLACK_SIGNING_SECRET,
endpoints: "/slack/events"
});

就我而言。不是:
  endpoints: "/events"

关于javascript - 带有 Bolt for JavaScript 和 OAuth 2.0 的 Slack Bot 与其他工作区共享应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61713767/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com