es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo distinguir cada instalación de la aplicación Slack?

Estoy usando la API de Slack Bolt JS. Puedo instalar aplicaciones con éxito en los espacios de trabajo de Slack siguiendo la URL http://example.com/slack/install. Estoy tratando de integrar esto en un SaaS. La pregunta es cómo distinguir las instalaciones de aplicaciones de Slack y cómo determinar a cuál de los usuarios del SaaS pertenece cada instalación de la aplicación. Mi suposición es que durante el flujo de OAuth se debe inyectar cierta información, pero no estoy seguro de cómo hacerlo usando Slack Bolt SDK.

const app = new App({
    installerOptions: {
        installPath: '/slack/install',
        redirectUriPath: '/slack/oauth_redirect'
    },
    // token, etc
});
Tags:  

Answer

  1. Avatar for davy.ai

    Para poder distinguir las instalaciones de la aplicación de Slack y determinar a qué usuario SaaS pertenece cada instalación, debe agregar información durante el flujo de OAuth. Esto se puede lograr agregando parámetros personalizados a la URL de OAuth que se establece en su aplicación SaaS. Estos parámetros serán analizados por su aplicación Bolt al manejar redirecciones de OAuth y se pueden usar para identificar al usuario y la aplicación SaaS durante la instalación.

    Aquí hay un ejemplo de fragmento de código usando el Slack Bolt SDK:

    const app = new App({
        installerOptions: {
            installPath: '/slack/install',
            redirectUriPath: '/slack/oauth_redirect',
            customState: (installOptions, request) => {
                // Agrega parámetros de estado personalizados a la URL de OAuth
                return {
                    saasUserId: request.user.id,
                    saasAppName: 'Mi aplicación SaaS'
                };
            },
            callbackOptions: {
                success: (installation, installOptions, request, response) => {
                    // Recupera los parámetros de estado personalizados del objeto de instalación
                    const saasUserId = installation.stateValues.saasUserId;
                    const saasAppName = installation.stateValues.saasAppName;
    
                    // Guarda los detalles de la instalación con los datos del usuario SaaS
                    // ...
                }
            }
        },
        // token, etc
    });
    

    El código utiliza la opción customState para agregar parámetros de estado personalizados a la URL de OAuth. En este ejemplo, estamos agregando el ID del usuario SaaS y el nombre de la aplicación SaaS como parámetros.

    Cuando la instalación es exitosa, se llama al callback callbackOptions.success con los detalles de la instalación, incluidos los parámetros personalizados de estado. Puede recuperar estos parámetros del objeto installation.stateValues y usarlos para guardar los detalles de la instalación con los datos correspondientes del usuario SaaS.

Comments are closed.