2017-03-01 2 views
1

Ich bin neu in der Entwicklung von Bots und versuche BotKit in Slack zu verwenden, um jede Woche einen zufälligen Benutzer im #test-Kanal zu erwähnen. Hier ist der Code, den ich bis jetzt habe:Wie sende ich eine Nachricht mit einer zufälligen @ Mention auf Slack mit BotKit?

controller.hears('interactive', 'direct_message', function(bot, message) { 
    // send webhooks 

    bot.configureIncomingWebhook({url: 'https://hooks.slack.com/services/my/hook/uri'}); 
    bot.sendWebhook({ 
    text: 'Hey!', 
    channel: '#test', 
    },function(err,res) { 
    // handle error 
    }); 
}); 

Im Moment sendet dies eine Nachricht "Hey!" an den #test-Kanal, wenn ich Nachricht den Bot "interaktiv", was in Ordnung ist. Wie bekomme ich alle Benutzernamen von Benutzern, und randomize sie so, dass der Text wie folgt ausgibt: text: '"Hey " + "@" + random.username + " !"',. Ich möchte, dass diese Nachricht jede Woche gesendet wird.

Irgendwelche Ideen?

Antwort

1

Slack bietet eine users.list Funktion wie hier beschrieben: Slack API users.list

Die members Array enthält user Objekte. Sie können den Benutzer user[0].name verwenden, um auf den ersten Benutzernamen zuzugreifen, den Sie @mentionieren möchten. in der Demo, die sie bereitstellen, wäre das @bobby.

Mögliche Probleme könnten entstehen, weil sie die Liste in "keine bestimmte Reihenfolge" zurückgibt ... Sie könnten sie möglicherweise in einer separaten Datenbank speichern und Elemente hinzufügen, wenn sie neu sind und basierend auf Ihren Datenbankeinträgen randomisieren.

Verwandte Themen