Actualmente estoy escribiendo un bot de Slack usando BoltJS y quería agregar verificación usando el método de verificación integrado () , que necesita el secreto de firma, así como la solicitud entrante. El problema es que los comandos que activan el método app.command() no proporcionan la solicitud completa. Solo proporciona la carga útil y, por lo tanto, el método de verificación () arroja el siguiente error:
TypeError: stream.on is not a functionya que ninguno de los parámetros proporcionados es válido.
//These are the parameters of the app.command method export interface SlackCommandMiddlewareArgs { payload: SlashCommand; command: this['payload']; body: this['payload']; say: SayFn; respond: RespondFn; ack: AckFn<string | RespondArguments>; } //This is what the SlashCommand Object is made of for context export interface SlashCommand extends StringIndexed { token: string; command: string; text: string; response_url: string; trigger_id: string; user_id: string; user_name: string; team_id: string; team_domain: string; channel_id: string; channel_name: string; api_app_id: string; enterprise_id?: string; enterprise_name?: string; is_enterprise_install?: string; }¿Hay alguna forma de capturar la solicitud antes de que el controlador de comandos la reciba con la que pueda verificarla, o me estoy perdiendo algo más por completo? No he encontrado nada al respecto en la documentación, pero mientras tanto seguiré buscando.
La documentación de Slack, establece que:
Algunos SDK realizan la verificación de la firma automáticamente, a los que se puede acceder a través de un sencillo reemplazo directo de su secreto de firma por su antiguo token de verificación. Consulte la sección de soporte de SDK para obtener más detalles. https://api.slack.com/authentication/verifying-requests-from-slack#about
Y Bolt para JS es uno de los SDK compatibles