忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/04    03« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »05

Slack でチャンネルのログを取得したりユーザ情報を取得したり

おっ、と思ったのでこれで試してみた。

導入手順はありがたいことに日本語訳されているので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());
PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R