3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TROCCOからChatworkに通知を飛ばしてみる

Last updated at Posted at 2024-11-29

はじめに

TROCCOはジョブの終了時などにSlackかEmail宛てであれば通知を飛ばすことができます。
ワークフロー定義とAPIを使えばそのほかのチャットサービスなどにも通知を送ることができますが、SlackやEmailでの通知と比べて設定がちょっと難しかったです。

今回は、タスクが終了したらChatworkに通知が飛ぶように設定してみたので
やり方を紹介していきます!

今回のゴール

タスクがすべて終了したらChatworkに自動でメッセージが飛ぶ状態にする

TROCCOのワークフロー定義って何??

TROCCOのワークフロー定義、データ転送やデータマートなど複数のタスクの順序と組み合わせを設定することで、一連のフローを作成する機能です。

(詳しくはヘルプドキュメントをご参考ください!)

タスクとして、HTTPリクエストが設定できるので
これを利用してAPIを実行していきます。

ChatworkのAPIを確認する

今回使うAPIは以下のものです。リクエストを送ると指定したメッセージが送信できます。

また、APIのリクエストを投げるときに必要な設定は下記を参照しました。

そのほか、必要なことは適宜調べながら設定していきました。

ワークフロー定義を設定してみる

それではワークフロー定義の設定をしていきます。

TROCCOのトップ画面です。ここからワークフロー定義ができます。

スクリーンショット 2024-11-19 143758.png

ここでは特に難しい設定はありません。
設定の名前や、タスクの実行に関する制限などを指定します。設定できたら 保存 します

スクリーンショット 2024-11-19 144241.png

遷移後の画面はこんな感じです。

スクリーンショット 2024-11-19 165318.png

左側の タスク追加 から、ワークフローに組み込みたいタスクをクリックします。
今回は、以下をワークフローに組み込みます。

  • TROCCO転送ジョブ(設定作成済みのもの)
  • HTTPリクエスト

TROCCO転送ジョブ(データ転送設定)の作成方法は下記もご参考ください!
https://qiita.com/khpkymgc/items/4af6b46a9dd0260ca0b8
https://qiita.com/khpkymgc/items/70a817ea2e8732e5a577

TROCCO転送ジョブ をクリックすると、作成済みの設定が出てくるので今回使うものを指定して 追加 します。

スクリーンショット 2024-11-19 165604.png

スクリーンショット 2024-11-19 165804.png

HTTPリクエストを設定してみる

APIの設定をしていきます。

HTTPリクエスト をクリックすると、こんな画面に遷移します。

スクリーンショット 2024-11-19 170200.png

Chatworkのサポートサイトを見ながら設定していきます。
URLHTTPメソッド はここを見ればよさそうです。
スクリーンショット 2024-11-19 170448-2.png

{room_id}は、通知を送りたいルームを開いたときのURL末尾の数字を指定します
https://help.chatwork.com/hc/ja/articles/360000142942-%E3%83%AB%E3%83%BC%E3%83%A0ID%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B

POST を指定すると、入力項目が増えます。
メッセージ本文や、既読/未読の設定はそこに入れていきます。

Chatworkのサポートサイトでは、入力欄に送信したいメッセージなどを入れることでHTTPリクエストの例文を出してくれたので参考にしていきます。

Headerには APIトークン を入れます。確認方法は下記をご参考ください
https://developer.chatwork.com/docs/getting-started

必要事項を入力して、 Try it! を押したところ成功しました!
この値を使って設定すればよさそう…?

スクリーンショット 2024-11-19 172214.png

ということで、TROCCO側に値を入れます

スクリーンショット 2024-11-19 172830.png

ちなみに、HTTPリクエストボディを上記にすると失敗します。
この後エラーの解消をやっていくので、一緒に設定している方はご注意ください!

他に、HTTPヘッダとして下記を設定する必要があるみたいです。

  • x-chatworktoken: (APIトークン)
  • content-type: application/x-www-form-urlencoded

スクリーンショット 2024-11-19 173005.png

後は入れる値がなさそうなので保存します。

下の方にうっすらHTTPリクエストの設定が追加されました。
スクリーンショット 2024-11-19 174843.png

TROCCO転送ジョブ → HTTPリクエスト の順番で動かしたいので、2つをつなぎます。
HTTPリクエストをドラッグで適当な位置に移動させて、赤枠と赤枠をつなぐように左から右に引っ張ってつなぎます。

スクリーンショット 2024-11-19 174909.png

自動レイアウト を押すといい感じに配置しなおしてくれるのでやっておきます
きれいになったら、右上の 保存 を押します

スクリーンショット 2024-11-19 180053.png

実行してみる

実際にワークフローを実行してみます。
実行 を押すと即時でタスクがスタートします

スクリーンショット 2024-11-19 180250.png

現在の実行状況がほぼリアルタイムで確認できます

スクリーンショット 2024-11-19 180429.png

TROCCO転送ジョブは成功したようですが、HTTPリクエストは失敗したみたいです。。。

スクリーンショット 2024-11-19 180517.png

エラーを解消していく

エラー内容を確認して、HTTPリクエストが成功するよう設定を変更していきます。
エラーが発生したタスクをクリックします

スクリーンショット 2024-11-19 180517.png

そうすると、こんな感じでエラー内容が確認できます。

スクリーンショット 2024-11-19 180833.png

今回のエラー内容は下記でした

 [error]: Http Status is not success code. actual http code is 400. http body is {"errors":["Parameter 'body' is required"]

body と言われているので、HTTPリクエストボディ に入れた内容に問題がありそうです。
何がダメなんだろう~~といろいろ調べてみました。
結果、HTTPヘッダに content-type: application/x-www-form-urlencoded を設定したのに HTTPリクエストボディ がその形になっていなかったことが原因みたいです...

以下のサイトを参考に直してみました。

content-type: application/x-www-form-urlencoded の形にするには、下記を満たす必要があるようです

  • キー(項目)と値は = でつなぐ
  • 要素(キーと値)は URLエンコード する
  • 要素と要素は & でつなぐ

反映させると、こうなります

スクリーンショット 2024-11-19 184737.png

修正後の設定でもう一回試してみます

スクリーンショット 2024-11-19 184513.png

今度は成功しました!!

Chatworkで通知を確認する

Chatwork側でもちゃんとメッセージが来ているか確認します

設定どおり未読の状態でメッセージが届いていました!

image.png

今回は単純にメッセージのみを送るように設定しました。
下記のようにメッセージ内にワークフロー定義のURLを含めることで、通知から簡単に対象のワークフローを確認できるようになって便利なので、ぜひお試しください

スクリーンショット 2024-11-19 192524.png

設定はこれで終わりです!お疲れ様でした

おわりに

Chatworkのサポートサイトだと、URLエンコードとかしなくても成功したので「Content-type指定したら自動で変換してくれるんだ!!!!」と思い込んだのが今回の敗因でした。

複数のサービスを連携させて使うときは、あんまり詳細な設定方法の解説が見つからないことがあり設定が難しく思うことは多いです。でも、できたら便利だから設定したい。。
エラー内容からどの辺が問題なのかあたりをつけてみる入力するよう指示があったからとりあえず入れた項目の影響を疑ってみる といった感じで少しずつ原因をつぶしていくのが個人的おすすめです。

今回の設定の大部分はコピペでどうにかなっています。一字一句ミスがないか見直さなくてよかったのはChatworkのサポートサイトとTROCCOのGUIに感謝です!

他にも便利なことができたら記事にしていこうと思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?