我正在尝试使用Lambda函数构建无服务器的Slackbot。通过Slack事件API验证请求URL时出现错误。 @slack/events-api
是我用来捕获松弛事件的依赖项。
这是我的代码。
const sls = require('serverless-http');
const { createEventAdapter } = require('@slack/events-api');
require('dotenv').config();
const { SLACK_SIGNING_SECRET } = process.env
const slackEvents = createEventAdapter( SLACK_SIGNING_SECRET || '' );
slackEvents.on('message', async event => {
console.log('received!')
});
module.exports.server = sls(slackEvents.requestListener());
这是我在验证请求网址时遇到的错误
松弛请求URL验证
有人可以帮我吗?
答案 0 :(得分:0)
我不确定如何确切地解决您的问题,但是我知道是什么原因造成的。
您正在使用的库serverless-http
解析Slack发送的JSON正文。这会引发错误,因为slack-api-sdk希望解析原始请求主体本身。
您可以尝试删除public static void main(String... args) {
int a[]=new int[10];
for(int i = a.length-1; i>=0 ; i--){
a[a.length-i-1] = i;
}
System.out.println(Arrays.toString(a));
}
并仅响应API网关事件吗?
答案 1 :(得分:0)
刚遇到这个确切的问题,并在node-slack-events
中查看了http-handler.js。
我们要做的就是在rawBody
解析之前将原始请求正文存储为serverless-http
。
serverless-http
使您transform the request在发送到应用程序之前-进行修复的绝佳机会:
module.exports.handler = serverless(app, {
request(request) {
request.rawBody = request.body;
},
});