概要
Slack の API でユーザ回りの操作をするときはユーザ ID (U0123456789 みたいな ID) が必要になります
ブラウザやアプリの Slack 上では Username で mention などのやり取りをしますが、それだと API でユーザを指定することができません
なので、今回は Username からユーザ ID を取得してみました
環境
- Mac OS X 10.10.5
- Ruby 2.3.1p112
- Gem 2.5.1
- slack-api 1.2.4
事前準備
前回の記事を先行にトークンの取得まで行っておいてください
http://hawksnowlog.blogspot.jp/2016/09/try-slack-rtm-api.html
ユーザ ID を取得するスクリプトの作成
- vim get_user.rb
if ARGV.length != 1
exit(1)
end
@token = "xoxp-xxxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxxx"
require 'slack'
Slack.configure {|config| config.token = @token }
client = Slack::Client.new
client.users_list['members'].map{ |v|
if v['name'] == ARGV[0]
puts "#{v['id']}"
break
end
}
引数にユーザ名を与えてそれに合致する名前があればユーザ ID を表示する感じです
最後に
Slack API でユーザに対する操作をするときは一旦こんな感じのスクリプトや API を使ってユーザ ID を調べてから操作する感じかなと思います
本当はユーザ名で検索できるといいのですが、ちょっとそういった API が見つからなかったので、一覧を取得してそこから検索するようにしました
0 件のコメント:
コメントを投稿