freee API를 통해 영수증 이미지 데이터 등록
그래서 영수증(이미지 데이터)을 회계 freeee에 등록하는 샘플 코드를 작성해 보았습니다.
환경
Mac OS
Node.js v10.19.0
요청 서식 확인
freee 개발자 사이트 "Developers Community"에서 API에 대한 요청 형식을 확인합니다.
등록 테스트에 사용하는 사업장의 company_id를 확인하는 엔드포인트는 "companies"
영수증 등록용 엔드포인트는 "receipts".
영수증을 등록하는 CURL은 다음과 같습니다.
curl -X POST "https://api.freee.co.jp/api/1/receipts" -H "accept: application/json" -H "Authorization: Bearer アクセストークンの文字列" -H "Content-Type: multipart/form-data" -F "company_id=事業所のID" -F "description=" -F "issue_date=" -F "receipt=@画像ファイル名;type=image/jpeg"
사전 준비
데스크톱에 작업용 디렉토리 만들기
mkdir imagepost
cd imagepost
npm init 패키지를 설치합니다. 이번에 사용하는 것은
npm init
npm install fs --save
npm install form-data --save
npm install axios --save
실제 코드
const fs = require('fs');
const FormData = require('form-data');
const axios = require('axios');
const auth_token ='freee API のアクセストークン';
const company_id = '事業所ID';
const url = `https://api.freee.co.jp/api/1/receipts`; //領収書を登録するエンドポイント
const imagePath = `./images/receipt_1.jpg`; //画像のパス
const file = fs.createReadStream(imagePath);
const form = new FormData();
form.append('receipt', file);
form.append('company_id', company_id);
const config = {
headers: {
'accept' : 'application/json',
'Authorization' : 'Bearer ' + auth_token,
'Content-Type' : 'multipart/form-data',
...form.getHeaders(),
}
}
axios.post(url, form, config)
.then(res => console.log(res.data))
.catch(err => console.log(err));
실행하면 무사히 영수증이 등록되었습니다.
포인트로서는, 영수증의 이미지를 FormData에 추가할 때에, 요소명을 「reciept」라고 지정하는 곳 근처일까요.
참고 정보
htps : // m / n0 비스케 / ms / 1d1cfc330997f93 2
h tps:// 퀵했다. 소 m/수_데어 th/있어 MS/아 94아 C4 아 4d71928920c5
htps : // 기주 b. 코 m / 아오 s / 아 오 s # 후 rm
노비스케씨도 썼습니다만, 브라우저로부터 이미지를 multipart/form-data 로 포스트하는 예는 많지만, 서버측으로부터 포스트하는 예는 적다.
위의 기사는 매우 도움이되었습니다.
Reference
이 문제에 관하여(freee API를 통해 영수증 이미지 데이터 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TakeshiNickOsanai/items/6c61ce7c68adf7f2284a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)