Ribbit.work

KintoneからChatworkにメッセージを送る

JavaScript

last modified date2021-9-7

publish date2021-9-6

使用したコード

/**
 * Chatworkにメッセージを送ります.
 *
 * @param apiToken 送り主のAPIトークン
 * @param chatroomId 送り先のチャットルームID
 * @param message 送信メッセージ
 * @param alreadyRead 送り主から見て、送信メッセージを既読にする場合はTrue
 * @return Promiseオブジェクト
 */
function sendChatworkMessage(apiToken, chatroomId, message, alreadyRead) {
  const uri = `https://api.chatwork.com/v2/rooms/${chatroomId}/messages`;

  const header = {
    "X-ChatWorkToken": apiToken,
    "Content-Type": "application/x-www-form-urlencoded",
  };

  const body = `body=${message}&self_unread=${alreadyRead ? "0" : "1"}`;

  return kintone.proxy(uri, "POST", header, body);
}

解説

引数に各パラメータを設定することで利用できます。
返り値が Promise オブジェクトなので、送信を確認してから処理したい場合は以下のような記述が必要です。

sendChatworkMessage('_______________', '0000000', 'メッセージ', true)
.then(responses => {
	console.log('Chatworkにメッセージを送信しました。', responses);
	// ここに取得後の処理を書く
})
.catch(error => {
	console.log('Chatworkにメッセージを送信できませんでした。', error);
});

Content-Type について

POST メソッドや PUT メソッドを使用するエンドポイントのリクエストボディはContent-Type: application/x-www-form-urlencodedである必要があります。

Chatwork API ドキュメント | エンドポイント

今回はメッセージを送りたいだけなので、POST を使用します。

ですので Content-Type は上記の通り記述が必要になります。

レスポンスの内容

今回の目的はメッセージを送信することなので、結果を確認する必要のない場合は 受けとったパラメータについて知る必要はありません。
Chatwork から受け取るデータ(上記コードの response の部分)は、配列で取得されます

  • HTTP ボディ(ほしいデータの部分、JSON 形式)
  • HTTP ヘッダー(受信に成功したかどうかなどのステータスコード
  • ゲートウェイ情報(基本的には使いません。Chatwork は Amazon のゲートウェイを利用しているため、その情報が取得されます)

また、HTTP ボディは JSON 形式となっているので、JSON.parse をかませてやる必要があります。以下は、今回のケースの、parse 後のオブジェクト内容の例です。

{
	"message_id": "5",
}

エラーが発生した際の対処法

HTTP ヘッダーが’400’や’401’など、エラーが発生している場合。HTTP ボディは以下のようになります。

{
  "errors": ["Invalid API token"]
}

正常終了した場合の HTTP ヘッダーは'200'ですので、正常終了した場合のみ処理をしたい場合は、以下のようなエラーチェックを入れた方が良いかもしれません。

if (response[1] !== "200") {
  console.log("データを取得しましたが、エラーが返却されました。", response[1]);
  return;
}

応用

kintone 側に別のキー情報(名前やアカウント ID など)がある場合は、下記の記事と組み合わせることで、送りたい相手を動的にすることができます。

この記事を読んだ方におすすめの記事

KintoneからChatworkのユーザ一覧を取得する

KintoneからChatworkのユーザ一覧を取得する

JavaScriptKintone
2021-9-15
TypeScriptで楽天ブックス書籍検索APIを使う📚

TypeScriptで楽天ブックス書籍検索APIを使う📚

TypeScriptJavaScript
2021-9-13
【kintone】Webフォントを適用する

【kintone】Webフォントを適用する

KintoneJavaScript
2021-9-8
アクセス権限のないアプリにJavaScriptからだけアクセスを許可する方法

アクセス権限のないアプリにJavaScriptからだけアクセスを許可する方法

KintoneJavaScript
2021-9-3
【Kintone】フィールドの入力制限・可否を変更する

【Kintone】フィールドの入力制限・可否を変更する

KintoneJavaScript
2021-9-2

最新の記事

KintoneからChatworkのユーザ一覧を取得する

KintoneからChatworkのユーザ一覧を取得する

JavaScriptKintone
2021-9-15
TypeScriptで楽天ブックス書籍検索APIを使う📚

TypeScriptで楽天ブックス書籍検索APIを使う📚

TypeScriptJavaScript
2021-9-13
【kintone】Webフォントを適用する

【kintone】Webフォントを適用する

KintoneJavaScript
2021-9-8
Excel VBAの高速化はこれだけでOK!コピペで使えるコードを紹介

Excel VBAの高速化はこれだけでOK!コピペで使えるコードを紹介

VBA
2021-9-3
アクセス権限のないアプリにJavaScriptからだけアクセスを許可する方法

アクセス権限のないアプリにJavaScriptからだけアクセスを許可する方法

KintoneJavaScript
2021-9-3