Node.js를 사용하여 Chatwork에 이미지 업로드
동기
ChatworkAPI로 이미지를 업로드하고 싶을 때 curl을 사용하면 바삭바삭할 수 있습니다만, Node.js로 사용하고 싶은 경우의 경우도 있다고 생각합니다.
다만, 검색해 보면 Python과 ChatworkAPI의 설명은 유익한 편이 있지만, Node.js와 ChatworkAPI를 사용한 이미지 업로드 방법에 대한 설명이 확실하지 않다.
라는 생각을 계기로 써 보았습니다.
(´-`).
코드를 작성하기 전에 확인
샘플 코드
/**
* chatworkにAPI経由で画像をアップロードするテスト(Node.js)
*/
var con = require('./const.js');
var req = require('request');
var fs = require('fs');
var formData = {
'file' : {
'value' : fs.createReadStream('./hogehoge.png'), // アップロードしたいファイルを指定してください
'options' : {
'filename' : 'hogehoge.png', // ファイル名は任意でどうぞ
'Content-Type' : 'image/png' // 画像ファイルに合わせて変更してください
}
},
'message' : 'hogehogeをnode.js使って送るよ!' // 一緒に送信したいメッセージはこちらに。なければ省略可。
};
var options = {
'url' : 'https://api.chatwork.com/v2/rooms/' + con.room_id + '/files',
'formData' : formData,
'headers' : {
'X-ChatWorkToken' : con.token_id,
'Content-Type' : 'multipart/form-data'
}
};
req.post(options, function (error, response, body) {
console.log(body); // 送信後の処理はこちら
});
※room_id와 token_id는 다른 js에 module.exports에 기재되어 있습니다.
해설
ChatworkAPI 참조에 있는 요청 본문 이미지(예)이지만,
이 폼 부분의 준비를 formData 변수로 실시하고 있습니다.
--------------------------f295b94a5560e2eb
Content-Disposition: form-data; name="file"; filename="hogehoge.png"
Content-Type: image/png
abc012....binarydata....789de
...
--------------------------f295b94a5560e2eb
Content-Disposition: form-data; name="message"
hogehoge를 node.js를 사용하여 보냅니다!
--------------------------f295b94a5560e2eb--
실행 후 채팅 화면
다음과 같습니다.
했어,,, 올랐다! ε-(´∀`*)뵙
마지막으로
예외 처리라든지 여러가지 구현할 필요가 있습니다만, 일단 업로드 한다고 하는 목표 달성을 위해서(때문에) 할애 시키고 받고 있습니다. . .
제출 사용자를 별도로 등등도 어딘가의 기회에.
아래 사이트의 내용을 참고하셨습니다 m (_ _) m
Reference
이 문제에 관하여(Node.js를 사용하여 Chatwork에 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-aramak/items/02462e717e611456ab82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)