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で保存
この記事が気に入ったらサポートをしてみませんか?