[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Bolt は最先端の Slack アプリをつくるためのフレームワーク。これまでの JavaScript に加えて、今日 Java バージョンもリリースしました! ☕ 早速試してみてください! https://t.co/Jus3XOSj9c
— Slack Platform (@SlackAPI) March 20, 2020
おっ、と思ったのでこれで試してみた。
導入手順はありがたいことに日本語訳されているのでAPI クライアントのセットアップ | Slack SDK for Javaを眺めながらのんのんとやればよい。
続いて基本的な Web API の利用 | Slack SDK for Javaを眺めながら実装していくのだが、投稿するサンプルくらいしかない。javadoc は提供されているが説明とかは現時点では何もないので辛いものがあるかもしれない。きっと今後増えるとは思う。
// ダミーです
final String TOKEN = "xoxb-123456789012-123456789012-z4k4dNbB5BOQGF8TtbGPynfj";
final String CHANNEL = "CMJ85D7K8";
Slack slack = Slack.getInstance();
MethodsClient client = slack.methods(TOKEN);
// リクエストは builder で記述する
ConversationsHistoryResponse result = client.conversationsHistory(ConversationsHistoryRequest.builder().channel(CHANNEL).build());
// 例えば以下のようにすると「一定の時間以降の投稿のみ取得」とかできる
// ConversationsHistoryResponse result = client.conversationsHistory(ConversationsHistoryRequest.builder().channel(CHANNEL).oldest(lastPostTimeStump).build());
// ログ出力
List<message> list = result.getMessages();
for( Message message : list ) {
System.out.println(message.getText());
// 他にもいろいろ情報が取れる
// message.getTs(); でタイムスタンプとか
}
// ダミーです final String TOKEN = "xoxb-123456789012-123456789012-z4k4dNbB5BOQGF8TtbGPynfj"; Slack slack = Slack.getInstance(); MethodsClient client = slack.methods(TOKEN); UsersInfoResponse result = client.usersInfo(UsersInfoRequest.builder().user(userId).build());
Selenium なんかで jQuery を前提としているスクリプトを html を開いて実行したい際等に使う。ただ、これを実行した後すぐに利用できるわけではなく、読み込みには時間がかかるので wait を入れたりしないといけない点には注意。
const script = document.createElement('script');
// 例として jQuery の 3.1.0 を入れているが別に他の物を入れてもいい
script.setAttribute('src', 'https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js');
document.getElementsByTagName('body')[0].appendChild(script);
コマンドを忘れがちなので以下を使うと簡単に始められるようにする
group id:
project id:
CODIV-19 の影響で弊社もリモートワークが一時的にだが全面開放になった。やっほい。
やってみた感想ですが圧倒的にリモートワークは良い。私は花粉症持ちなのでまずそれに悩まなくて済む。それに通勤時間も消える。すばらしい。逆に家と職場が極端に近くて花粉症もないのであればあまり意味はないかもしれない……
口頭でコミュニケーションをあまりとらないのでチャットやメールで連絡をすることが多くなる。するとコミュニケーションの証跡が残るため経緯をまとめたりするときに楽だったりするのも強い。ただ、これは普通にオフィスに働くとしても同じことができるから「リモートだからこそ」ではないかも。
逆に口頭でコミュニケーションできない結果、コミュニケーションコストが高くつくためサボりがちになるのが良くない。チームで何らかの通話ツールを1つ定めてつなげっぱなしにしておく、といった手段で解決が可能ではあるがそのチームを越えてしまうと面倒。ただ、チームを越えたときにその辺が難しくなるのはオフィスにいても変わらない。
こうやって考えるとリモートワークでコミュニケーションに困る場合はオフィスで働く場合でも問題があってそれが顕在化しちゃっていることの方が多いのかもなぁ。
タイトルまんま。
// Job で設定した token を叩いて実行することを想定
wrap([$class: 'BuildUser']) {
echo env.BUILD_USER; // ← null と出力される
echo BUILD_USER; // ← undefined で error を吐いて終わる
}
リモートから叩かれる可能性があるならば気を付けた方が良い。env.BUILD_USER とすれば問答無用で落ちることはないが予想外の値が入っているので事故る可能性はある。ただただ BUILD_USER として確実に落として安全側に倒す方が良いかも。
次のようにすれば初期値がない場合に無理やり差し込める
wrap([$class: 'BuildUser']) {
env.BUILD_USER = env.BUILD_USER ?: "仮の値";
}
// 別の wrap のところで先に入れた値は参照可能
wrap([$class: 'BuildUser']) {
echo BUILD_USER;
}