C#」カテゴリーアーカイブ

C#でSlackに(ちょっとリッチな)メッセージを送る

C#でSlackに(ちょっとリッチな)メッセージを送る。

SlackAPIは使用可能な状態であることとする!

  • リファレンスを読む(https://api.slack.com/methods/chat.postMessage
  • SlackApp を作成(https://api.slack.com/apps
  • 適切なパーミッションを指定(chat:write, chat:write.customize あたり)
  • アクセストークンを払い出す
  • App を Slackワークスペース にインストール
  • 投稿したいチャンネルに↑のAppを追加

詳しくはリファレンスを見てもらうとして、要するにSlackAPIのURLにJSONデータをアクセストークン付きでPOSTすればいいのだな。

c#とJSONの関係はPHPとのそれより冷めている。C#くんは融通が利かないのだ。(いいところでもある)

JSONデコード、エンコードをするためには大変面倒くさいが、専用クラスを作ったほうが早い。

というわけでリファレンスを見ながら SlackMessage クラスを作る。

こんな感じ。

 

リッチな書式は Attachments で指定するらしいので、こちらもクラスにしておく。

こんな感じ。

 

その他のプロパティはリファレンスを見ながら追加していけばいいが、大体これで足りるんではないか。

次に送信する部分にとりかかる。HttpClient を使って認証情報付きのPOSTを行う。
これがセオリー通りなのかはわからない。誰か教えてください。

こんな感じ。

 

メソッドが返している result にも色々有用な情報が入っているので、実行時は見てみるとよいかもしれない。
(投稿idを使って返信したりできるとかできないとか)

では実際に送信してみる。

実際に送られるメッセージはこんな感じになる。
リッチな装飾が不要なら Attachments は省略してもよい。