質問: "body=\(msg)" とすると良いとありますが、jsonの中で、どのように記述すれば良いのかわかりませんでした。 headers に Content-Type: "application/x-www-form-urlencoded" 入れてみましたが、エラーは解消しませんでした。 ### 補足情報(FW/ツールのバージョンなど) Node-RED Ver 1.0.2
回答: Node-REDの場合、以下のように指定することでChatworkの指定のルームIDのグループチャットにメッセージを投稿できましたので、ご紹介します。 **1. functionノードの指定** `msg.headers`にHTTPリクエストのヘッダーフィールド、`msg.payload`にHTTPリクエストのコンテントボディ部をセットします。 ``` /* functionノード */ msg = { 'headers':{ 'X-ChatWorkToken': '', 'Content-Type': 'application/x-www-form-urlencoded' }, 'payload': { 'body':'01234567ABCDEFGあいうえおかきくけこ', } }; return msg; ``` **2. http requestノードの指定** !イメージ説明 ちなみに上記のHTTPリクエストを`locahost:8000`宛(※)に送ると、以下のような内容となります。`'body':'01234567ABCDEFGあいうえおかきくけこ'`部分が自動的にURLエンコーディングされていることが分かります。 ※`nc`コマンドを利用し、TCPポート8000番でローカルサーバーとして簡易的に立ち上げています) ``` $ nc -l 8000 POST /v2/rooms/roomid/messages HTTP/1.1 X-ChatWorkToken: ChatWorkAPIToken Content-Length: 110 Content-Type: application/x-www-form-urlencoded host: localhost:8000 Connection: close body=01234567ABCDEFG%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A%E3%81%8B%E3%81%8D%E3%81%8F%E3%81%91%E3%81%93 ``` Node-RED version: v1.0.2, Node.js v12.13.0, Windows 7 64ビット版で確認しました。 **追記しました: 2019-11-07 04:57** HTTPリクエストのヘッダーフィールド部の設定ですが、リクエストヘッダをセット - Node-RED クックブック に従って、以下のような指定方法でもできました。 ``` /* functionノード */ msg.headers = {} msg.headers['X-ChatWorkToken'] = ''; msg.headers['Content-Type'] = 'application/x-www-form-urlencoded'; msg.payload = { 'body':'01234567ABCDEFGあいうえおかきくけこ', } return msg; ```