GAS×freeeAPI連携|スプレッドシートへのデータ取得の方法

こんにちは。ITライターのもり(@moripro3)です!

「GAS」と「クラウド会計ソフトfreeeのAPI」を使った自動化の記事をお届けしています。

前回の記事では、GASでfreeeAPIを使うための作業手順を紹介しました。

関連記事

こんにちは。ITライターのもり(@moripro3)です! 「GAS」と「クラウド会計ソフトfreeeのAPI」を使った自動化の記事をお届けしています。 前回の記事では、GASとfreeeAPIを使った事例を紹介しました。CSV[…]

今回の記事では、GASでfreeeAPIを操作して、取得したデータをスプレッドシートに出力する(書き込む)方法を紹介します。

freeeAPIの公式リファレンスを確認する

自分でGASを書いてfreeeAPIを操作するためには、freeeAPIの公式リファレンスを読めるようになりましょう。まずfreeeAPI公式リファレンスの「会計freee APIでできること」を確認します。

APIにアクセスするHTTPリクエストは主に4種類あります。最も簡単なのはデータを「取得」するGETです。他の3つはデータベースに更新をかけるので、気をつける必要があります。

処理 メソッド
データの取得 GET
データの作成 POST
データの更新 PUT
データの削除 DELETE

GASでfreeeAPIから取得したデータをスプレッドシートに出力する

HTTPリクエストのGETメソッド(= GETリクエスト)でAPIからデータ取得できます。

この記事では、データ取得の練習として「取引先の一覧」をスプレッドシートに取得してみます。他にも、勘定科目一覧の取得・品目一覧の取得など色々なデータを取得できます。

※前回の記事『GASでfreeeAPIを使うための作業手順を分かりやすく解説』で書いたfreeeAPI認証用のスクリプトを、今回紹介するスクリプトと同じプロジェクト内に記述しておく必要があります。

freeeAPIにアクセスするリクエストURLの作り方

APIを使う上でポイントになるのが「リクエストURL」です。リクエストURLとは、APIにアクセスする宛先のことで、freeeAPIでは下記の3つを結合して作ります。

  • ①APIエンドポイント(固定値) = https://api.freee.co.jp/
  • ②個別URL = ※リファレンスで確認
  • ③パラメータ = ※リファレンスで確認

①+②+③を結合した文字列が、目的となるリクエストURLです。

(例)取引先一覧の取得

  • ①APIエンドポイント = https://api.freee.co.jp/
  • ②個別URL = /api/1/partners
  • ③パラメータ = 事業所IDのみ必須、その他は任意指定

①+②+③を結合すると、下記の文字列になります。①②と③は?で結合します。

https://api.freee.co.jp/api/1/partners?company_id=xxxxxxx

freeeAPIリファレンスによると「取得レコードのデフォルト件数」が50件なので(51件以上の登録データがあっても最初の50件のみを取得する)、取得件数の上限を任意パラメータで設定します。ここでは100件にします。パラメータとパラメータを&で結合します。

https://api.freee.co.jp/api/1/partners?company_id=xxxxxxx&limit=100

freeeAPIからJSONデータを取得する

取引先の一覧を取得してログ出力するスクリプトです。6行目がリクエストURLです。

function getPartners() {

  const accessToken = getService().getAccessToken();
  const company_id = "事業所IDを設定"; //事業所ID

  const url = `https://api.freee.co.jp/api/1/partners?company_id=${company_id}&limit=100`;//リクエストURL

  const params = {
    method: "get",
    headers: { 'Authorization': 'Bearer ' + accessToken }
  };

  const response = UrlFetchApp.fetch(url, params);
  const obj = JSON.parse(response);

  console.log(obj);

}

freeeAPIからのレスポンスはJSONデータで取得できます。

JSONデータをスプレッドシートに書き込む

freeeAPIからのレスポンス(JSONデータ)をスプレッドシートに書き込みます。すべてのデータを書き込むのは多すぎるので、必要なプロパティのみを書き込むようスクリプト内で指定します。どのようなプロパティがあるか、リファレンスで確認できます。

ここでは、id , name の2プロパティのみをスプレッドシートに出力します。35行目で指定しています。

function getPartners() {

  const accessToken = getService().getAccessToken();
  const company_id = "事業所IDを設定"; //事業所ID

  const url = `https://api.freee.co.jp/api/1/partners?company_id=${company_id}&limit=100`;//リクエストURL

  const params = {
    method: "get",
    headers: { 'Authorization': 'Bearer ' + accessToken }
  };

  const response = UrlFetchApp.fetch(url, params);
  const obj = JSON.parse(response);

  const objPartners = obj.partners;
  OutputSheet_(objPartners);

}

/**
* freeeAPIから取得したJSONデータをシートに出力する
*
* @param {object} obj freeeAPIから取得したデータ
*/
function OutputSheet_(obj) {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("出力");
  sheet.clear();

  let arr = [];

  for (const i in obj) {

    let { id, name } = obj[i]; //スプレッドシートに出力するプロパティ
    arr.push([id, name]);

  }

  sheet.getRange(1, 1, arr.length, arr[0].length).setValues(arr);

}

スプレッドシートへの出力結果です。

【まとめ】freeeAPIから取得したデータをスプレッドシートに出力する

この記事では、例として「取引先一覧の取得」をしました。上述スクリプトの下記2つを変更することで、他の種類のデータ取得にも流用できます。

  • リクエストURL = APIエンドポイント + 個別URL + パラメータ
  • 出力プロパティ = JSONデータの中から必要データのみを指定する

次回の記事では「freeeAPIを使ってスプレッドシートのデータをfreeeに登録する方法」を紹介します。

関連記事

こんにちは。ITライターのもり(@moripro3)です! 「GAS」と「クラウド会計ソフトfreeeのAPI」を使った自動化の記事をお届けしています。 前回の記事では、freeeAPIから取得したデータをスプレッドシートに出力[…]

 

請求書の受け取りはsweeepで自動化

【AI請求書処理】従来の請求書OCRでは対応できない非定型帳票や

自動会計仕訳も、sweeepなら対応可能!最短で即日導入、

面倒な設定不要。手軽に導入して請求業務を効率化。