質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
BotKit

BotKitは、Slack等のボットを作ることに特化したオープンソースのフレームワークです。JavaScriptで記述されており、 Node.js アプリケーションとして動作します。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

0回答

3305閲覧

slackのbotからメンション付きで返事がくるようにしたい

ThugumiIshimaru

総合スコア10

BotKit

BotKitは、Slack等のボットを作ることに特化したオープンソースのフレームワークです。JavaScriptで記述されており、 Node.js アプリケーションとして動作します。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2016/11/27 08:14

###前提・実現したいこと
現在、botkitを使って
botに話しかけたらメンション付きで返事をくれる仕組みを作ろうとしています。
そこで、ユーザの名前を覚えてもらって、名前を返してくれることはできたのですが、
名前ではなく、メンションで返してほしい時はどうしたらいいのかがわかりません。

###該当のソースコード
ここの「(.*)」で、ユーザの名前を覚えてもらいます。

controller.hears(['(.*)って呼んでください', 'my name is (.*)'], 'direct_message,direct_mention,mention',function(bot, message) { var name = message.match[1]; controller.storage.users.get(message.user, function(err, user) { if (!user) { user = { id: message.user, }; } user.name = name; controller.storage.users.save(user, function(err, id) { bot.reply(message, 'おっけー!じゃあ、' + user.name + ' って呼ぶね'); }); }); });

「user.name」がbotに覚えてもらった名前です。

node.js

1controller.hears(['終わりました!','def'],['direct_message','direct_mention'],function(bot,message) { 2 controller.storage.users.get(message.user,function(err, user) { 3 if (user && user.name) { 4 bot.reply(message, '<@' + user.name + 'お疲れ様!'); 5 } 6 else{ 7 bot.reply(message, 'お疲れ様!'); 8 } 9 }); 10 });

###試したこと

  • user.nameと書いているところを「user.id」と書いてみた

->反応せず

  • IDをどう取得をしているのか調べてみた

->あまり有益な情報が得られず...

###補足情報
バージョン

  • node 7.2.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2016/11/27 16:14

'<@' の指定部分、間にスペースを入れた場合('< @') で変化はありませんか?
ThugumiIshimaru

2016/11/27 22:08

ありがとうございます!今試してみたのですが、特に変化は無いようでした...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問