Chatworkに対し、メッセージやファイルを投稿したいというリクエストがあったので、調査。
カスタムコネクタを作ってもよかったんだけど、まずは簡単に試せるHTTPアクションから実行。
必要な情報
- Room ID
- APIトークン
RoomID

APIトークン


メッセージを投稿する


■Headers
{
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"X-ChatWorkToken": "【APIトークン】"
}
■Queries
{
"body": "【送りたいメッセージ】",
"self_unread": 0
}

ファイルを投稿する



last(split(triggerBody()?['file']?['name'], '.'))


■Headers
{
"Accept": "application/json",
"Content-Type": "multipart/form-data",
"X-ChatWorkToken": "【APIトークン】"
}
■Body
{
"$content-type": "multipart/form-data",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"file\"; filename=\"@{triggerBody()?['file']?['name']}\""
},
"body": {
"$Content-type": "@{first(body('アレイのフィルター処理'))['content-type']}",
"$Content": @{triggerBody()?['file']?['contentBytes']}
}
}
]
}

ファイルの投稿と一緒にメッセージも送信できるはずだけど。。
ファイル投稿のAPIを見ると、ファイルと一緒にメッセージの投稿もできるらしい。


multipart/form-dataの使い方が違う可能性があるが、現時点では解決策見つからず。
{
"$content-type": "multipart/form-data",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"file\"; filename=\"@{triggerBody()?['file']?['name']}\""
},
"body": {
"$Content-type": "@{first(body('アレイのフィルター処理'))['content-type']}",
"$Content": @{triggerBody()?['file']?['contentBytes']}
}
},
{
"headers": {
"Content-Disposition": "form-data; name=\"message\""
},
"body": "Hello World"
}
]
}