Soy un principiante en el desarrollo y trato de desarrollar un bot de holgura con el siguiente código:
const {App} = require('@slack/bolt'); const app = new App ({ token : process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET }); (async () => { await app.start(process.env.PORT || 3000); })();para mi .env:
{ SLACK_BOT_TOKEN = "my token", SLACK_SIGNING_SECRET = "my Signing Secret" }y mi paquete.json:
"scripts": { "dev":"nodemon slack.js" }, "dependencies": { "@slack/bolt": "^3.11.0", }pero no funciona tengo este mensaje:
AppInitializationError: se requiere la firma de secreto para inicializar el receptor predeterminado. Configure la firma de secreto o use un receptor personalizado. Puedes encontrar tu secreto de firma en la configuración de la aplicación de Slack.
Cuando me refiero a la documentación de Slack, y después de la verificación y revisión del código, parece ser lo mismo, ¿alguien sabe por qué?
Cuando usa process.env.{SOME_VARIABLE} , se refiere a la variable de su sistema local durante la ejecución de su secuencia de comandos js, por lo que significa que deben sourced de alguna manera. Como ya lo entristeció Ali Rashidi , puede usar el paquete dotenv npm para lograr el objetivo, pero personalmente prefiero simplemente cargarlos a través del archivo de configuración, o incluso mejor, simplemente obtenga su archivo .env en su shell antes de iniciar su secuencia de comandos, es decir:
source .env node yourscript.jsNota: este enfoque requiere un abastecimiento manual cada vez que su archivo .env, por lo que no es una forma tan práctica
En su lugar, puedes intentar hacer algo como
// slack_configuration.json { "SLACK_BOT_TOKEN": "YOUR TOKEN", "SLACK_SIGNING_SECRET": "YOUR SIGNING SECRET" } const { App } = require('@slack/bolt'); const slackConfiguration = require('./slack_configuration.json') const app = new App ({ token : slackConfiguration.SLACK_BOT_TOKEN, signingSecret: slackConfiguration.SLACK_SIGNING_SECRET }); (async () => { await app.start(process.env.PORT || 3000); })(); en general, este tipo de enfoque se prefiere en la máquina local y no en un contenedor específico diseñado con el propósito de ejecutar solo la aplicación, ya que es más seguro, no se debe acceder a todos sus SECRET a través de .env, ya que son accesibles para todos los procesos en el sistema para que estén expuestos
Debe instalar el paquete dotenv y usarlo para analizar el archivo .env y cargar sus variables.
Instalar dotenv: npm i dotenv
Escriba esto al principio del archivo de entrada del programa: require('dotenv').config()