61 votes

Programmer un message dans Slack

J'ai besoin d'envoyer un message dans slack à une heure fixée à l'avance.

Y a-t-il un moyen de le faire via l'API de Slack ou dois-je avoir un script qui s'exécute et vérifie s'il est temps d'envoyer le message, puis l'envoie ?

57voto

Afas Points 466

Vous devriez pouvoir créer un rappel en envoyant un message à @slackbot. Le message devrait être du type

/remind [@someone or #channel] [what] [when]

Voici quelques exemples :

/remind @username to do something in 24 hours

ou :

/remind @username to do something at 16:00

32 votes

merci, mais le rappel n'est pas un message. le message peut être formaté.

2 votes

@LLL Vous pouvez formater le message... /remind @channel *Remember* to _listen_ to the radio in 2 hours

0 votes

ce que je voulais dire par format à l'époque, c'était ajouter des pièces jointes. En gros, il s'agissait d'envoyer un message que vous seriez en mesure d'envoyer par l'intermédiaire de l'api de messagerie, mais à un moment déterminé à l'avance.

23voto

Thusitha Points 81

Vous pouvez utiliser cette application Slack gratuite pour envoyer des messages programmés et autodestructeurs. https://timy.website

  1. Envoi d'un message programmé

/envoyer Joyeux anniversaire à 12h

/envoyer Joyeux anniversaire dans 1h30m

  1. Envoi d'un message d'autodestruction

/supprimer Message secret ! à 14 heures

/supprimer Message secret ! dans 3h

Vous pouvez trouver plus de détails sur le site web.

9 votes

Sympa, merci d'avoir créé ça :) ! Au fait, pourquoi la durée maximale de programmation est-elle de 24h ? Ce serait génial de programmer un message le vendredi soir pour le lundi matin à un collègue qui ne veut pas être dérangé pendant le week-end (donc 72h maximum). Une autre chose à laquelle je pensais - ne pensez-vous pas que les commandes sont un peu trop génériques et pourraient entrer en collision avec d'autres bots Slack ? Peut-être les nommer ? Je ne suis pas sûr de cela... Quoi qu'il en soit, très bon travail !

0 votes

Ils ont une option gratuite et non gratuite. Je suppose que la limite de 24h est une façon de faire la différence.

19voto

Erik Kalkoken Points 10522

Si vous souhaitez simplement envoyer un court message à un utilisateur à un moment donné, vous pouvez utiliser le rappel intégré. Le site reminder.add vous permet de spécifier une date, une heure, le texte du message et l'utilisateur qui doit recevoir le message.

Le message de rappel apparaîtra dans le canal "Slackbot" de l'utilisateur concerné.

Voici un exemple de ce que cela donnerait : enter image description here

0 votes

Je veux poster des messages sur un canal, ils ne se répètent pas, ils disent essentiellement qu'un événement programmé commence et/ou se termine maintenant sans autre déclencheur que l'heure. Ce serait bien d'avoir un certain formatage sur eux aussi. Est-ce que le rappel est toujours bon pour cela ?

1 votes

oui, le rappel fonctionne pour les messages non répétitifs. La mise en forme habituelle des messages fonctionne également, ce qui vous permet d'avoir du texte en gras, etc. Mais pas de pièces jointes. Ce qui est également intéressant, c'est que l'utilisateur peut suspendre le rappel. Je vais ajouter un exemple dans ma réponse.

0 votes

Est-il possible de ne pas avoir le système de rappel ? Par exemple, enlever la partie "vous m'avez demandé de vous le rappeler" et marquer comme terminé et juste avoir un message avec du rouge ou du vert sur le côté qui dit quelque chose du genre "Maintenance programmée du serveur blah débutant/se terminant".

3voto

Ivan Hanák Points 1329

Vous pouvez utiliser l'api officielle de Slack au point de terminaison. chat.postMessage avec une clé post_at pour avoir votre message prévu . Plus d'informations dans documentation officielle de slack https://api.slack.com/messaging/scheduling . Vous pouvez également utiliser des applications tierces, qui sont gratuites la plupart du temps, par exemple https://thetopchat.com/ et programmer votre message avec des commandes comme, par exemple :

/delay in 3 hours {your message here}

ou

/schedule tomorrow at 3pm {your message here}

1voto

Bruno Paulino Points 2670

L'API de Slack fournit désormais un point de terminaison dédié à cet effet. Vous aurez besoin du chat:write et les docs disent :

Schedules a message to be sent to a channel.

Je viens de l'implémenter et cela fonctionne comme prévu.

Vous pouvez consulter les documents ici : chat.scheduleMessage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X