2016-04-02 26 views
2

Slack APIで提供されるthis methodを使用して、 "user"オブジェクトの "name"属性を取得しようとしています。これを行うコードは次のとおりです。Slack API(JSON Data)

controller.hears(['users'], 'direct_message, direct_mention, mention', function(bot, message){ 
bot.api.users.info({}), function(err, response) { 
bot.reply(message, response); 
var slack_username = message["user"][2]; 
console.log(">>>>> " + slack_username); 
}); 
}); 

私が間違っていることが分かりません。何か助けがあれば幸いです。前もって感謝します!

EDIT:

予想される出力: "dkulas"

ターミナル出力 " "U"

デバッグ:ガット応答ヌル{ "OK":偽、 "エラー":" USER_NOT_FOUND "}

degub:SAY {OK:偽、エラー: 'USER_NOT_FOUND'、チャンネル" 'D0UV5S7MZ'}

+5

期待している出力と、出力しているエラーを含めてください。 –

+1

'bot.api.users.info({})'にパラメータを渡す必要はありませんか?スラックユーザーIDを渡しているコードの部分は表示されません。ユーザーIDは「U」で始まる必要があります –

+0

私はIDが「U」で始まると信じています。登録時にユーザーが選択したユーザー名、つまりjoesmithを取得しようとしています。そして、私はそれをキャプチャしようとする目的を破るリテラルユーザID /名前を渡すことはできません。何がわからない場合は、どのようにパラメータを提供できますか?任意の時点でスクリプトを使用しているユーザーに応じて、任意の数のユーザー名を使用できます – dannyk

答えて

0

スラックAPIメソッドusers.infoでは、クエリにSlack User IDを指定する必要があります。形式はU12345678です。

ユーザのユーザ情報を名前で取得する場合は、APIメソッドusers.listを使用して、名前とユーザIDを含むすべてのユーザのリストを取得し、そのリストを検索します。右のマッチusers.listはユーザーに関するすべての情報を提供するため、user.infoに電話する必要はありません。

このメソッドのドキュメントについては、hereを参照してください。