Node.js를 사용하여 Chatwork에 이미지 업로드

동기



ChatworkAPI로 이미지를 업로드하고 싶을 때 curl을 사용하면 바삭바삭할 수 있습니다만, Node.js로 사용하고 싶은 경우의 경우도 있다고 생각합니다.
다만, 검색해 보면 Python과 ChatworkAPI의 설명은 유익한 편이 있지만, Node.js와 ChatworkAPI를 사용한 이미지 업로드 방법에 대한 설명이 확실하지 않다.
라는 생각을 계기로 써 보았습니다.

(´-`).

코드를 작성하기 전에 확인


  • request, fs를 사용하기 위해 npm에 설치되어 있어야합니다

  • 샘플 코드


    /**
     * 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


  • Chatwork API 문서: 채팅에 새 파일 업로드
  • ぇぇぺぺr. 제대로 rk. 코 m/쟈/엔 d포인 t_로오 ms. html #포 ST-로오 ms-로오 m_이 d-후우 s

  • ChatWork에 이미지 업로드 in Python
  • htps : // 이 m / 어머니 / ms / b7f44c227cd712 1051

  • Node.js request 모듈에서 multipart/form-data를 POST하여 파일 업로드
  • htps //w w. 사와 몬테아. 코m/엔트리/2019/05/10/205204

  • node.js의 request 모듈을 사용하여 다른 서버에 파일을 POST합니다.
  • htps : // 하고 싶다 l. 코 m / 쿠에 s 치온 s / 67531

  • 좋은 웹페이지 즐겨찾기