どーもばるすです。
BotとかいじってるとSlackのユーザーIDとかグループIDをすぐにちょちょっと取得したいときがあるんすよね。
それ、ブラウザの開発者ツールでとれるよ!って小耳に挟んだので試してみた話をします。
ユーザIDを取得してみる
グループIDを取得してみる
おーたしかにとれる。
ほんとだー。
グループIDはともかく、ユーザIDをスクリプトでバシッと出力できたら楽だなー。
ちょろっとスクリプト書いてみた
const elements = document.getElementsByClassName( "c-link c-message__sender_link" ) for (let i =0;i<elements.length;i++){ console.log(elements[i].innerText+" : "+elements[i].attributes[2].textContent) } // ==> User名 : ID * n行
実行してみる
できた。
ただ、このままだとコンソールにしか出ないのでちょっとイケてない。
まぁコンソールでコード実行している時点であんまりかっこよくないけど。
理想は拡張機能からの実行だがそれはまた今度として、Slackの入力欄に出すように手を加えてみる。
追記した版
const elements = document.getElementsByClassName( "c-link c-message__sender_link" ) var text = '現在表示しているチャンネルに投稿したユーザー名とID' for (let i =0;i<elements.length;i++){ console.log(elements[i].innerText+":"+elements[i].attributes[2].textContent) var text = text + '\n' +elements[i].innerText+":"+elements[i].attributes[2].textContent } var inputField = document.getElementsByClassName( "ql-editor ql-blank" ) inputField[0].children[0].innerHTML = text var inputArea = document.getElementsByClassName("ql-editor")
実行してみる
いいかんじ。
ちょろっとID取りたいだけならこれで十分かもw
気づいたこと
Slackの入力欄は、入力されてない/入力されている でクラス名が変わる
この状態だとql-editor ql-blank
この状態だとql-editor
InnerTextに’\n’だと改行が利かない
innerTextの場合
innerHTMLの場合
@here,@channel はIDを持っていない
終わりに
今回はちょろっと気づいたことをベースに、軽めな内容で書いてみました。
こういうやり方だと楽ですよ!とか良いアイデアがあったら教えてくださーい。
いじょー