とろろこんぶろぐ

かけだしR&Dフロントエンジニアの小言

slackのbotkitでユーザ名が取得できない問題

訳あってslackのbotを作るためにbotkitを使って開発してるんだけど、

@real_name こんにちは

と書かれたときのreal_nameを取得しようと思ったら、

    controller.hears("こんにちは",["direct_message","direct_mention","mention"], (bot,message) => {
        const text = message.text;
        console.log(text);
    });

@slack_id こんにちは

と勝手にidに変換されていてユーザ名が取得できなかった。

結局わからず、bot.apiで直接slackのapiを叩いて、membersを取得しslack_idとreal_nameの対応表を作った。

            bot.api.users.list({token}, (err, response)=>{
                response.members.forEach((user)=>{
                    slackUserList[user.id] = user;
                });
            });

もっと効率の良いやり方あったら知りたい。