Syntax Error.

[Sy] ChatWork に通知を送る(Web API 利用)

2018/01/22

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設定 をクリックします。

ChatWork API設定

API Token を選択すると、アカウントのパスワードを求められるので入力して表示 をクリックします。

(ぼくは既に発行済みだったので、もしかしたら最初は 発行 というボタンだったかもしれません)

ChatWork APIトークン発行

APIトークン(英数字32桁)が表示されたら、コピーしておきます。

ChatWork APIトークンコピー

これで APIトークンの取得はOKです。

2. メッセージを送るチャットの roomId を取得する

今回は指定したチャットに対してメッセージを送りたいので、そのチャットを表示した状態で、URLの ridXXXXXXX という部分(XXXXXXX は数字)を確認します。

ChatWork roomIdの取得

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"

実行すると、すぐにマイチャットに以下のようなメッセージが送られます。

ChatWork APIでメッセージ送信