2017-03-01 10 views
1

매주 #test 채널에서 무작위 사용자를 언급하기 위해 봇을 개발하고 슬랙 내에서 BotKit을 사용하는 데 익숙합니다. 여기에 내가 지금까지 가지고있는 코드가 있습니다 :BotKit을 사용하여 임의의 @mention으로 임의의 메시지를 보내는 방법은 무엇입니까?

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 
    }); 
}); 

바로 지금 "Hey!"라는 메시지를 보냅니다. #test 채널로 보낼 때 봇이 "대화식"봇으로 메시지를 보내면 괜찮습니다. 어떻게하면 사용자의 모든 사용자 이름을 얻을 수 있으며, 텍스트 출력이 text: '"Hey " + "@" + random.username + " !"',이되도록 임의화할 수 있습니다. 나는이 메시지를 매주 보내고 싶다.

아이디어가 있으십니까? Slack API users.list

members 배열 user 개체를 포함 여기 바와 같이

답변

1

슬랙은 users.list 기능을 제공한다. 사용자 user[0].name을 사용하여 @mention에 넣을 첫 번째 사용자 이름에 액세스 할 수 있습니다. 데모에서 그들은 이것이 @bobby가 될 것이라고 알려줍니다.

"특정 순서 없음"으로 목록을 반환하기 때문에 잠재적 인 문제가 발생할 수 있습니다. 잠재적으로 데이터베이스를 별도의 데이터베이스에 저장하고 새 요소 인 경우 요소를 추가하여 데이터베이스 항목을 기반으로 임의화할 수 있습니다.