chatworkの添付ファイルをAPI経由でダウンロードする

chatwork上でGB単位のファイルのやりとりをしていて、出先で対応するのに一旦保存して再アップロードに時間がかかったのでその場でAPIを実行したときのメモ

最低限必要なもの
linux環境,curl,jq
参考:http://developer.chatwork.com/ja/endpoints.html


1.APItokenの発行
https://www.chatwork.com/service/packages/chatwork/subpackages/api/token.php

2.room情報の取得


curl -X GET -H "X-ChatWorkToken: {APIトークン}" https://api.chatwork.com/v2/rooms" | jq


3.ルーム内のチャットの発言を最新から100件取得しファイルIDを取得

curl -X GET -H "X-ChatWorkToken: {APIトークン}" "https://api.chatwork.com/v2/rooms/{roomID}/messages?force=1" | jq

↑大抵これで取得できるはず
引っかからなければcurl -X GET -H "X-ChatWorkToken: {APIトークン}" "https://api.chatwork.com/v2/rooms/{roomID}/files?account_id=ホゲホゲ"
でファイルを送信したアカウントIDをつける
ファイルIDは"body": "**\n[info][title]ファイルをアップロードしました。[/title][download:ここ]*** (1 GB)[/download][/info]",


4.ダウンロードURLを30秒有効にする

curl -X GET -H "X-ChatWorkToken: {APIトークン}" "https://api.chatwork.com/v2/rooms/{roomID}/files/{fileID}?create_download_url=1" | jq


5.生成されたURLからファイルダウンロード
wgetなりcurlで保存

この記事が気に入ったらサポートをしてみませんか?