GASでfreeeAPIを使うための作業手順を分かりやすく解説

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

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

前回の記事では、GASとfreeeAPIを使った事例を紹介しました。CSVファイルでのインポート・エクスポートをしなくても、freeeのデータを直接スプレッドシートに取得したり、また、スプレッドシートのデータを直接freeeに登録することができます。

関連記事

こんにちは。ITライターのもり(@moripro3)です!GoogleAppsScriptの記事をお届けしています。 クラウド会計ソフトfreeeをお使いのみなさま、日常業務の手作業をもっと効率化・自動化できたら嬉しいですよね。 […]

今回の記事では、GASでfreeeAPIを使うための具体的な作業手順を、一から順に紹介します。前提事項として、以下の方を想定しています。

  • 会計freeeのアカウントを保有している
  • スプレッドシートのスクリプトエディタの操作方法がわかる、GASを少し書いたことがある

GASでfreeeAPIを使うための作業手順

事前準備として、freeeAPIと連携するスプレッドシートを用意します。新規作成、または、既にお使いのものでも構いません。

スプレッドシートにデータを取得できるよう、単独のスクリプト(スタンドアロンスクリプト)ではなく、スプレッドシートに紐づくスクリプト(コンテナバインドスクリプト)を用意してください。

freeeアプリストアで「連携アプリ」を作成する

freeeAPIを使ってfreeeのデータにアクセスするための「連携アプリ」を作成します。会計freeeのアカウントを保有していれば、誰でも「freeeアプリストア」で作成することができます。

連携するスクリプトの「スクリプトID」を確認する

アプリと連携させるスクリプトの情報(スクリプトID)を確認しておきます。

事前に用意したスプレッドシートのスクリプトエディタを開きます。画面左側の歯車アイコン「プロジェクトの設定」をクリックして、スクリプトIDを確認します。後で作成するアプリ登録時に使うので、コピーしてメモ帳などに記録しておきましょう。

アプリを作成して情報を登録する

freeeアカウントで会計freeeにログインし、ログイン後ホーム画面の「関連プロダクト・サービス」→「freeeアプリストア」の順にクリックします。

「開発者ページ」をクリックします。

「今すぐアプリを作成」をクリックします。

①~④を入力・選択し、⑤をクリックします。

  • ①「アプリ名」を入力
  • ②「概要」を入力
  • ③「アプリタイプ」を選択
  • ④利用規約を読んでチェック
  • ⑤「作成」をクリック

アプリが作成され、詳細画面に遷移したら、「コールバックURL」を登録します。コールバックURLとは、連携アプリがリダイレクトするURLです。GASのスクリプトのURLを指定します。

コールバックURLの形式がこちらです。スクリプトIDの部分に、前述で確認した「スクリプトID」をあてはめましょう。

https://script.google.com/macros/d/スクリプトID/usercallback

コールバックURLの初期値を上書きして「下書き保存」をクリックします。

この画面で「Client ID」と「Client Secret」を確認することができます。後述の作業で使用します。
※freeeAPIにアクセスするIDとパスワードなので、第三者に知られないよう注意しましょう。

GASでfreee連携アプリを認証する

GASで連携アプリを認証します。

認証用ライブラリ(OAuth2)を追加する

スクリプトエディタを開き、「ライブラリ+」をクリックします。

認証用ライブラリ(OAuth2)のスクリプトIDを入力(コピー&ペースト)し、「検索」をクリックします。

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

最新のバージョン(2021年1月現在はver40)を選択して「追加」をクリックします。

OAuth2ライブラリの追加が完了しました。

freeeAPI認証用スクリプトを実行する

GASのスクリプトで認証します。後述のスクリプトの2変数に、連携アプリの値を設定します。

  • Client_ID = アプリの「Client ID」の文字列
  • Client_Secret = アプリの「Client Secret」の文字列

それぞれの文字列はドラッグで選択→右クリック→コピーでコピーできます。

freeeAPI認証用のスクリプト

/*
参照ライブラリ
title        |OAuth2
project_key  |1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
*/

//連携アプリ情報
const Client_ID = "ここにClientIDを設定";
const Client_Secret = "ここにClientSecretを設定";

//認証のエンドポイント 
function alertAuth() {
  const service = getService();
  const authorizationUrl = service.getAuthorizationUrl();
  console.log(authorizationUrl);//認証用URLがログ出力される
}

//freeeAPIのサービスを取得
function getService() {
  return OAuth2.createService('freee')
    .setAuthorizationBaseUrl('https://accounts.secure.freee.co.jp/public_api/authorize')
    .setTokenUrl('https://accounts.secure.freee.co.jp/public_api/token')
    .setClientId(Client_ID)
    .setClientSecret(Client_Secret)
    .setCallbackFunction('authCallback')
    .setPropertyStore(PropertiesService.getUserProperties())
}

//認証コールバック関数
function authCallback(request) {
  const service = getService();
  const isAuthorized = service.handleCallback(request);
  if (isAuthorized) {
    return HtmlService.createHtmlOutput('認証に成功しました。タブを閉じてください。');
  } else {
    return HtmlService.createHtmlOutput('認証に失敗しました。');
  }
}

 

alertAuth関数を実行すると、認証用URLがログ出力されます。このURLをコピーします。

ブラウザのURL欄に貼り付けてEnterキー押下でアクセスし、「許可する」をクリックします。

成功メッセージが出れば完了です。

以上でfreeeAPIを使うための作業が完了です。次の項で、実際に試してみましょう!

GASでfreeeAPIから事業所一覧を取得する

freeeAPIで事業所のデータを取得してみます。会計freeeのアカウントに紐づくすべての事業所情報を取得できます(公式リファレンス:/api/1/companies

function getCompanies() {

  const accessToken = getService().getAccessToken();

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

  //事業所一覧を取得するリクエストURL
  const url = "https://api.freee.co.jp/api/1/companies";

  const response = UrlFetchApp.fetch(url, params);
  Logger.log(response);

}

JSONデータの”id”が「事業所ID」です。今後freeeAPIを使用するうえで必要になるので、控えておくとよいでしょう。

まとめ

GASでfreeeAPIを使うための「連携アプリ」の作成方法・認証方法を紹介しました。次回の記事で、より実務的な「freeeAPIを使ってスプレッドシートにデータを取得する方法」を紹介します。

関連記事

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

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

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

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

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