Freeeのアプリを作成してみる Part 2
2021-06-22
Freee
本日は昨日の続きで、FreeeさんのAPIをつかってレシート・領収書のデータファイルをファイルボックスに保存するアプリを作ってみます。
前回ではアプリの基本となりクレデンシャル部分をカバーしました。本日は実際にデータをアップロードする部分を作ってみます。
前回の投稿はこちらです。
POST /api/1/receipts
利用するAPIメソッドはこちらになります。 https://developer.freee.co.jp/docs/accounting/reference#operations-Receipts-create_receipt
/api/1/receipts
に対してファイルをPOSTしていきます。
下記のコードを書いてみました。
// ここでイメージデータを取得 var image = (from i in _db.Images where i.Tid == originalLog.ImageLocation select i).FirstOrDefault(); // すでに保存されているイメージデータをダウンロードしてByte[]にします var myWebClient = new WebClient(); byte[] imageArray = myWebClient.DownloadData(image.BlobUrl); using (var httpClient = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://api.freee.co.jp/api/1/receipts")) { request.Headers.TryAddWithoutValidation("accept", "application/json"); request.Headers.TryAddWithoutValidation("Authorization", "Bearer {ここにトークン}"); request.Headers.TryAddWithoutValidation("X-Api-Version", "2020-06-15"); var multipartContent = new MultipartFormDataContent(); multipartContent.Add(new StringContent("{事業所IDをここに指定}"), "company_id"); multipartContent.Add(new ByteArrayContent(imageArray), "receipt", originalLog.ImageLocation + ".jpg"); request.Content = multipartContent; var response = await httpClient.SendAsync(request); } }
これで指定の事業所参加にあるファイルボックスにイメージファイルを格納することができます。
ファイルボックスの確認
実際に指定の事業所のファイルボックスを見てみましょう↓。
意図した動きになっていますね、 次は事業所の選択とトークンのリフレッシュを見てみたいと思います。
公開日: 2021-06-21