LoginSignup
9
10

More than 5 years have passed since last update.

BotFrameworkで、Slackのチャンネルに新しく入ってきた人に挨拶する

Posted at

BotFrameworkのMembersAddedを使うと、Slackのチャンネルに新しく入ってきた人に挨拶できるみたいなので、少しやってみました(^O^)v
MembersAddedのドキュメントはこちら

入ってきた人に挨拶

var restify = require('restify');
var builder = require('botbuilder');

var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});

var connector = new builder.ChatConnector({
    appId: 'ID',
    appPassword: 'PASSWORD'
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());

// ここで入ってきた事を取得して、挨拶
bot.on('conversationUpdate', function (message) {
    if (message.membersAdded) {
        var membersAdded = message.membersAdded
            .map((m) => {
                var isSelf = m.id === message.address.bot.id;
                return (isSelf ? message.address.bot.name : m.name);
            })
            .join(', ');

        var reply = new builder.Message()
            .address(message.address)
            .text('いらっしゃいませー ' + membersAdded + ' さん');
        bot.send(reply);
    }
});

スクリーンショット 2016-10-11 0.57.27.png

退出した時に挨拶

退出時はmembersRemovedを使うと、取れるみたいです。

  if (message.membersRemoved) {
        var membersRemoved = message.membersRemoved
            .map((m) => {
                var isSelf = m.id === message.address.bot.id;
                return (isSelf ? message.address.bot.name : m.name);
            })
            .join(', ');

        var reply = new builder.Message()
            .address(message.address)
            .text('ばいばーい' + membersRemoved);
        bot.send(reply);
  }

スクリーンショット 2016-10-11 1.09.24.png

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10