web-dev-qa-db-fra.com

Comment envoyer des messages directs à un utilisateur en tant qu'application dans le canal d'application

Comment est-il possible d'envoyer un message en mou directement à l'utilisateur, par user.id comme application. enter image description here

cette application a une portée: bot, canaux: écriture, emoji: lecture, utilisateurs: lecture, utilisateurs: lecture.email

Je trouve comment envoyer un message uniquement en tant que DM ou par webhooks, mais il n'y a aucune possibilité pour cela. Quelqu'un a une idée?

11
Koloritnij

Si je comprends bien votre question, vous souhaitez envoyer des messages directs aux utilisateurs dans le canal d'application au lieu du canal slackbot standard.

Pour ce faire, vous devez

  1. Votre application a besoin de l'étendue bot et d'un utilisateur de bot
  2. Ouvrez un canal de message direct depuis votre application avec l'utilisateur avec im.open . Vous récupérez un identifiant de message direct.
  3. Envoyer un message avec chat.postMessage à l'ID du canal de message direct

Assurez-vous d'utiliser votre jeton d'accès au bot (pas le jeton d'accès utilisateur) à partir de votre application Slack.

La portée bot vous donne toutes les autorisations nécessaires pour ouvrir et envoyer des DM aux utilisateurs depuis votre canal bot. Aucune autre portée n'est requise.

Vous pouvez également utiliser les nouvelles méthodes conversations, qui fonctionnent pour tous les types de canaux pour faire de même.

Voir aussi cette question sur le même sujet.

22
Erik Kalkoken

Il existe un autre moyen de résoudre ce problème, qui peut être plus approprié si votre application utilise un bot pour fonctionner avec l'API Slack.

Vous devez appeler chat.postMessage méthode API et spécifier l'argument channel égal à l'ID utilisateur (par exemple U0G9QF9C6) vous voulez envoyer un message et as_user l'argument est vrai. Détail important - assurez-vous que vous utilisez un jeton d'accès au bot (apprenez ici comment l'obtenir).

Exemple:

curl -X POST "https://slack.com/api/chat.postMessage" -H  "accept: application/json" -d token=BOT_ACCESS_TOKEN -d channel=U0G9QF3C6 -d text=Hello -d as_user=true

De cette façon, votre message sera toujours envoyé au nom (nom et icône) de votre bot et sera affiché comme un message direct dans le canal de l'application (YourAppChannel dans la barre latérale Slack).

Par rapport à l'approche de @ErikKalkoken, vous n'avez pas besoin de créer un canal à l'avance et, par conséquent, gardez une trace de son ID (il peut être bon ou mauvais selon vos besoins).

8
Ruslan Isay