backlogから課題の追加か更新があった場合、hubotを通して、slackのチャンネルに通知されるのですが、通知したい相手にメンションが飛ばない状態です。
backlogとslackのユーザー名が違うため、backlogから取得したユーザー名とslackの表示名が同じの為、slackAPIのusers.listからユーザーの表示名(display_name)を
エンコードし漢字に変換し、backlogから取得したユーザー名とslackの表示名が同じの場合、slackのIDを表示する記述をしたいのですが、
JSONファイルの取得の仕方が分からない状態です。
下記の③のリンク先がJSONファイルのusers.listからメンバーを取得しているので下記のコードに入れてみたのですが、hubotが動作しなくなりました。
下記の記述にslack API users.listを取得できるようにするにはどう記述したら良いのでしょうか?
①通知したい人にSlackのメンションを飛ばすために参考にしたサイト
https://qiita.com/kon_yu/items/8e06ee1e638000a5c544#%E9%80%9A%E7%9F%A5%E3%81%97%E3%81%9F%E3%81%84%E4%BA%BA%E3%81%AB%E3%83%A1%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%B3%E9%A3%9B%E3%82%93%E3%81%A7%E3%82%8B%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3
②slack API users.list
https://api.slack.com/methods/users.list
③hubotからSlackのAPI自体にアクセスする方法
https://qiita.com/esehara@github/items/0774004d8761a5f24a72
.coffee
# Description: # Backlog to Slack backlogUrl = 'https://backlog.jp/' module.exports = (robot) -> robot.router.post "/slackroom/:room", (req, res) -> room = req.params.room body = req.body # # ③を入れた箇所 # console.log 'body type = ' + body.type console.log 'room = ' + room try switch body.type when 1 label = '課題の追加' when 2, 3 # 「更新」と「コメント」は実際は一緒に使うので、一緒に。 label = '課題の更新' else # 課題関連以外はスルー return # 投稿メッセージを整形 url = "#{backlogUrl}view/#{body.project.projectKey}-#{body.content.key_id}" if body.content.comment?.id? url += "#comment-#{body.content.comment.id}" message = "*Backlog #{label}*\n" # notificatonに通知したい人がいればその名前をメンションしてくれる if body.notifications.length > 0 for a in body.notifications console.log a.user.name console.log a.user.id backlogid = "#{a.user.name}" message += "\n[#{body.project.projectKey}-#{body.content.key_id}] - " message += "#{body.content.summary} _by#{body.createdUser.name}_\n>>> " if body.content.comment?.content? message += "#{body.content.comment.content}\n" message += "#{url}" console.log 'message = ' + message # Slack に投稿 if message? robot.messageRoom room, message # robot.messageRoom room, message res.end "OK" else robot.messageRoom room, "Backlog integration error." res.end "Error" catch error console.log error robot.send

あなたの回答
tips
プレビュー