freeeAPI

【freee×GAS】GoogleAppsScriptでfreeeAPIと連携認証する(サンプルコードあり)

クラウド会計freeeアイキャッチ

こんにちは、もり(@moripro3)です!

GAS×freeeAPI連携の方法を紹介します。

  • freeeAPI「連携アプリ」の登録方法
  • 「連携アプリ」とGASを連携する方法
  • APIを使用した処理の例(GETリクエストでデータ取得)

※この記事は、freee公式サイトfreee APIのアクセストークンを取得するの内容を元に作成しています。作業を進めるうえで私自身が詰まったところ、困ったところを補足しています。

クラウド会計ソフトfreeeのAPI連携とは

クラウド会計ソフトfreeeの各種データは、CSV形式でインポート・エクスポートができますが、freeeAPIを使用することで、Googleスプレッドシートとfreeeの間で直接データのやりとりが可能になります。

たとえば、スプレッドシートで管理しているデータが、freeeに直接インポートできない形式の場合、手作業で登録しなければなりませんが、GASでfreeeAPIを使うことで、直接freeeにデータを送信(登録)することもできます。

 

下記図が全体像で、左上赤枠の「連携アプリとfreeeを利用するエンドユーザー」が私たちです。

freee-role2-2(引用元:freee APIのアクセストークンを取得する

【前提条件と前提知識】

この記事の前提条件と前提知識です。GASを使ったことのある方を想定して書いているので、エディタの使い方などの説明は省略しています。

  • 前提条件:freeeのアカウントを保有している
  • 前提知識:Googleスプレッドシートと、それに紐づくスクリプトを操作したことがある。ログ出力の方法がわかる。

【事前準備】スクリプトIDの確認

現在お使いのスプレッドシート、もしくは、新規のスプレッドシートを作成して、スクリプトエディタを開きます。GASのコードはあとで書くので、とりあえず空っぽでOKです。

 

スクリプトエディタで「ファイル → プロジェクトのプロパティ」を選択し、「スクリプトID」を確認します。後述の連携アプリの登録時に使うので、ここで確認した値をメモ帳などにコピペしておきましょう。

freee-gas連携9

以前が事前準備です。それでは連携アプリを作成します。

freeeAPIにアクセスするための「連携アプリ」を作成する

freeeAPI経由でデータサーバーにアクセスするための「クライアントアプリ」を作成します。このクライアントアプリのことを、この記事では「連携アプリ」と呼びます。

freee-role1(引用元:freee APIのアクセストークンを取得する

freeeアプリストアへアクセスし、右上のログインをクリックします(※すでにfreeeにログイン済みの場合、ログイン画面は出ません)

freee-gas連携1

freeeアカウントでログインします(普段のログイン方法でOKです)

freee-gas連携2

事業所アカウントを選択します。

※アカウントに紐づくすべての事業所を操作できるようになるので、複数事業所をお持ちの場合、ここで選択する事業所はどれでもかまいません。よく使う事業所を選択しておくとよいでしょう。

freee-gas連携3-2

画面右上の「アプリ管理」をクリックします。

freee-gas連携4

「連携アプリ」を作成する

連携アプリを作成します。「新規追加」をクリックします。

freee-gas連携5

 

アプリ名・概要を入力し、利用規約を読んで同意にチェックし、「作成」をクリックします。※基本情報はあとから変更できます。

freee-gas連携6

 

連携アプリが作成されて、「Client ID」と「Client Secret」が発行されます。これは、freeeAPIにアクセスするためのIDとパスワードのようなものです(後で紹介するGASのスクリプト内に記述します)

コールバックURLの登録

つづいて、連携アプリに「コールバックURL」を設定します。コールバックURLとは、連携完了後の遷移先URLです。

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

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

コールバックURLの初期値を変更(上書き)して「下書き保存」をクリック

freee-gas連携7

以上で連携アプリの登録が完了しました!

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

それではGASと連携アプリを認証します。

認証用ライブラリ(OAuth2)の追加

スクリプトエディタを開き、「リソース → ライブラリ」を選択して、認証用ライブラリ(OAuth2)を追加します。

freee-gas連携10

 

ライブラリのプロジェクトキーがこちらです。

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

 

「ライブラリを追加」の欄に貼り付けして「追加」をクリックします。

freee-gas連携11

 

「このライブラリ登録をする時点の最新バージョン」を選択して、「保存」をクリックします。

freee-gas連携12

GASで連携認証をする

先ほど作成した連携アプリの「Client_ID」と「Client_Secret」を、認証作業に使用します。

freee-gas連携16

 

以下が、認証用のスクリプトです。

スクリプトエディタに貼り付けて、変数「Client_ID」と「Client_Secret」に連携アプリの値を設定したら、alertAuth関数を実行します。

認証URLにアクセスする

alertAuth関数を実行すると、認証URLがログに出力されます。このURLをコピーして、ブラウザのURL欄に貼り付けてアクセスします。

freee-gas連携20

 

「許可する」をクリックします。

freee-gas連携18-2

 

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

freee-gas連携19

おつかれさまでした。以上で認証作業が完了です。

事業所IDを確認する

連携認証が済みました。これで、クライアントアプリからfreeeのデータサーバにアクセスできるようになりました。

freee-role4

さて、これでfreeeAPIを使えるようになったのですが、今後freeeAPIを使ってデータ取得、送信をするためには「事業所ID」が必要です。

この事業所IDはfreeeの画面では確認できないので、下記のスクリプトを実行して確認しておきましょう。

このようなログが出力されます。idの値が「事業所ID」です。

 

GAS×freeeAPIの記事は「カテゴリ:会計freee」で紹介しています。ぜひご覧ください。