Créer une app OAuth Slack pour OpenConnector
Utilisez une app OAuth Slack lorsqu’OpenConnector doit lire les conversations Slack, répertorier les utilisateurs, envoyer des messages, téléverser des fichiers ou gérer les réactions via le service slack.
Service OpenConnector
| ID du service | Fournisseur | Type d’authentification |
|---|---|---|
slack | Slack | OAuth2 |
Le fournisseur Slack d’OpenConnector utilise Slack OAuth v2 et demande des scopes Slack comme channels:read, groups:read, im:read, mpim:read, les scopes d’historique et de fichiers, users:read, chat:write, im:write et les scopes de réactions.
Prérequis
- Un runtime OpenConnector en cours d’exécution.
- La permission de créer ou gérer une app Slack pour l’espace de travail cible.
- La permission d’installer des apps dans cet espace de travail Slack, ou l’accès à un propriétaire ou administrateur capable d’approuver l’installation.
- L’origine OpenConnector ouverte par les utilisateurs dans le navigateur, par exemple
http://localhost:3000ouhttps://connect.example.com.
Étape 1 : définir l’URL de callback OpenConnector
Ajoutez /oauth/callback à l’origine OpenConnector pour construire l’URL de callback.
Pour un test local, utilisez http://localhost:3000/oauth/callback. Si Slack refuse votre URL de callback locale, exposez OpenConnector via un tunnel HTTPS ou un domaine public, définissez OOMOL_CONNECT_ORIGIN, redémarrez-le et utilisez l’URL de callback publique, par exemple https://connect.example.com/oauth/callback.
Étape 2 : créer une app Slack
Dans la gestion des apps de l’API Slack :
- Créez une nouvelle app.
- Choisissez l’espace de travail de développement ou de test.
- Ouvrez OAuth & Permissions.
- Ajoutez l’URL de callback OpenConnector exacte aux URL de redirection.
- Ajoutez les scopes du bot nécessaires aux opérations OpenConnector.
- Enregistrez les paramètres de l’app.
Consultez la présentation OAuth de Slack Installing with OAuth et sa référence Scopes.
Étape 3 : copier les identifiants du client
Ouvrez Basic Information pour l’app Slack et copiez :
| Valeur Slack | Champ OpenConnector |
|---|---|
| Identifiant client | clientId |
| Secret client | clientSecret |
N’utilisez pas le jeton du bot comme secret du client OAuth. OpenConnector lance le flux OAuth et stocke les identifiants Slack obtenus après l’autorisation.
Étape 4 : enregistrer le client Slack dans OpenConnector
Utilisez la console web d’OpenConnector :
- Ouvrez la console web d’OpenConnector, par exemple
http://localhost:3000. - Ouvrez Providers et sélectionnez Slack.
- Choisissez Configure OAuth Client ou Edit OAuth Client.
- Collez l’ID et le secret du client Slack.
- Choisissez Save OAuth Client.
Étape 5 : connecter et tester
Après avoir enregistré le client OAuth, choisissez Connect sur la page du fournisseur Slack. Sélectionnez l’espace de travail Slack, approuvez l’app, revenez dans OpenConnector et vérifiez que la page du fournisseur indique que l’espace de travail est connecté.
Les opérations de test à faible risque comprennent slack.list_conversations, slack.list_channels et slack.list_users.
Résolution des problèmes
| Symptôme | Vérification |
|---|---|
| Slack refuse l’URL de redirection | Vérifiez que l’URL de redirection Slack est <openconnector-origin>/oauth/callback. Si votre configuration nécessite HTTPS, utilisez une origine publique HTTPS et définissez OOMOL_CONNECT_ORIGIN. |
| L’app ne peut pas être installée | Demandez à un propriétaire ou administrateur de l’espace de travail Slack d’approuver l’app si l’installation est limitée. |
| Des canaux sont absents | La visibilité des canaux publics et privés dépend des scopes, de la politique de l’espace de travail et de l’accès de l’app. Invitez l’app dans les canaux privés si nécessaire. |
| Les opérations sur les messages échouent | Vérifiez que l’app possède des scopes d’écriture comme chat:write et peut accéder à la conversation cible. |
| Les modifications de scopes ne s’appliquent pas | Réinstallez ou reconnectez Slack après avoir modifié les scopes pour que les nouveaux droits soient ajoutés aux identifiants connectés. |
Wanta