[Sy] ChatWork に通知を送る(Web API 利用)
Web API を使って ChatWork にメッセージを送ってみます。
ChatWork が公開している Web API のドキュメントはこちらにあります。
⇒ エンドポイント - チャットワークAPIドキュメントポイントとしては、
- APIトークンを取得する必要がある。
X-ChatWorkToken
として APIトークンをヘッダーにセットする必要がある。- エンドポイントの共通部分は
https://api.chatwork.com/v2
- APIコールは5分あたり100回までの制限がある
といったところです。
ではAPIトークンを取得して、メッセージを送ってみます。
今回は、Linux などで使える curl
コマンドを使ってメッセージを送ります。
1. APIトークンを取得する
ChatWork にログインし、右上のユーザ名のところにあるメニューから API設定
をクリックします。
API Token
を選択すると、アカウントのパスワードを求められるので入力して表示
をクリックします。
(ぼくは既に発行済みだったので、もしかしたら最初は 発行
というボタンだったかもしれません)
APIトークン(英数字32桁)が表示されたら、コピーしておきます。
これで APIトークンの取得はOKです。
2. メッセージを送るチャットの roomId を取得する
今回は指定したチャットに対してメッセージを送りたいので、そのチャットを表示した状態で、URLの ridXXXXXXX
という部分(XXXXXXX は数字)を確認します。
rid
の後の数字は roomId というチャットルームごとに割り当てられている ID で、後ほど必要になるので控えておきます。
今回はマイチャット(デフォルトで用意されている自分専用のチャットルーム)を使用します。
3. 送信テスト
では Hello ChatWork!
というメッセージをマイチャットに送ってみます。
ドキュメントはこちらになります。
⇒ エンドポイント /rooms - チャットワークAPIドキュメントドキュメントどおり、以下のコマンドを実行します。XXX となっている部分は、それぞれ次のように置き換えてください。
- X-ChatWorkToken : APIトークン
- URLのroomsの後ろ : roomId
ドキュメントでは -d
オプションを使ってますが、 --data-urlencode
を使うとメッセージがわかりやすいと思います。
$ curl -X POST -H "X-ChatWorkToken: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" --data-urlencode 'body=Hello ChatWork!' "https://api.chatwork.com/v2/rooms/XXXXXXX/messages"
実行すると、すぐにマイチャットに以下のようなメッセージが送られます。