Google Apps Script

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

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

こんにちは!ひっそりと個人事業の地盤を固めているもり(@moripro3)です!

事業に欠かせないのが、日々のお金の取引を記録する会計ソフト。現在、2つのクラウド会計ソフトをお試し比較中です。

  • freee
  • MFクラウド
もり
もり
銀行口座の連携とかもできて便利だね

法人の方はもちろん、個人事業で使用している方も多いのではないでしょうか。

 

そんな前置きはさておき、

 

モリ
モリ
おい、freeeがGASで使えるらしいぞ
おまえ、記事書け
もり
もり
な、な、なんてこったい!
よし、書くよ~

 

というわけで、さっそくAPI連携を試してみました!

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

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

 

▼freeeを無料で試してみる▼

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

現状、クラウド会計ソフトfreeeの各種データはCSV形式でインポート・エクスポートができますが、これを、CSV形式に変換せずにGoogleスプレッドシートとfreeeの間で直接データのやりとりができるとのことです。

また、Googleスプレッドシートで作成している帳票がfreeeに直接インポートできない形式の場合、手作業で登録しなければなりませんが、GASでAPI連携アプリを使うことで、直接freeeにデータ送信ができるそうです。

 

モリ
モリ
なるほど、めっちゃ便利そうだな

 

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

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

前提条件と前提知識

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

  • 前提条件:freeeのアカウントを保有していること
  • 前提知識:Googleスプレッドシートと、それに紐づくスクリプトエディタを操作したことがある

スプレッドシートの作成(事前準備)

事前準備です。新規のGoogleスプレッドシートを作成し、スクリプトエディタを開きます。GASのコードはあとで書くので、とりあえず空っぽでOKです。

 

このプロジェクトのスクリプトIDを確認します。連携アプリを作成する際のコールバックURLの登録に必要です。

ファイル→プロジェクトのプロパティを選択し、スクリプトIDを確認します。このスクリプトIDはのちほど使うので、メモ帳などにコピペしておきましょう。

freee-gas連携9

 

もり
もり
それでは作業を進めていくよ~

 

freee APIへアプリケーションを登録する

まずは連携アプリを登録します。下記図の赤枠部分の「クライアントアプリ」のことです。

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

 

freeeアプリストアの開発者ページへアクセスし、右上のログインをクリックします。

freee-gas連携1

freeeアカウントでログインします。
※ソーシャル連携のログインでは連携認証ができないらしいので、「他のアカウントでログイン」ではなく、「freeeアカウントでログイン」しましょう。

freee-gas連携2

 

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

freee-gas連携3

 

右上の「アプリ管理」をクリック

freee-gas連携4

アプリの登録

アプリを登録します。「新規追加」をクリック。

freee-gas連携5

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

freee-gas連携6

これでアプリが登録され、Client IDとClient Secretが発行・表示されます。

コールバックURLの登録

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

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

【コールバックURL】
https://script.google.com/macros/d/スクリプトID/usercallback

 

初期値を変更(上書き)して「下書き保存」をクリック

freee-gas連携7

以上でアプリケーション登録が完了です!!

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

それではGASと連携していきます。連携アプリで発行されたClientIDとClientSecretを、後で紹介するGASのスクリプト内に設定します。

freee-gas連携16

ライブラリの登録

認証用ライブラリ(OAuth2)を登録します。

freee-gas連携10

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

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

freee-gas連携11

最新バージョンを選択して、「保存」

freee-gas連携12

連携認証をするコード

連携認証用のコードです。変数Client_IDとClient_Secretには、アプリストアの情報を設定してください。

※実行するのはalertAuth()です!

連携の認証をする

これから行うのは、下記の赤枠の部分です。認証URLが発行(誘導)されるので、認証を許可します。

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

 

実際の作業方法です。

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

freee-gas連携20

 

事業所名が正しいかチェックして「許可する」

freee-gas連携18

 

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

freee-gas連携19

おつかれさまでした!

モリ
モリ
おい、APIがどんな感じで使えるのか見てみたいぞ

GETリクエストでスプレッドシートにデータを取得

もり
もり
それじゃあ、さっそく使ってみるよ~

連携認証が済んだので、下記の赤枠部分を試してみます。クライアントアプリがfreeeのサーバにアクセスします。

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

口座振替の一覧を取得するサンプルコード

freeeの口座振替の一覧を取得してみます。(データはダミーですよ!)

freee-gas連携21

↓こんな風にスプレッドシートに書き出すことができます。

freee-gas連携22

 

2019/4/1以降の振替データを取得するサンプルコードです。

 

もり
もり
CSV出力じゃなくて、直接スプレッドシートに書き出せるのが便利だね

 

他にも、アイデア次第でいろいろな連携ができるようです。

GASが操作できるその他Googleサービス(Gmail・Googleカレンダー・Googleフォームなど)と組み合わせることでさらに業務を効率化できます。

例えば、スプレッドシートから取引をアップロードした際に確認メールを送信する。Googleフォームで貯蔵品の使用や経費を申請し、その取引データをfreeeに送信する。取引の支払期日をGmailやGoogleカレンダーでリマインドする。

 

最後までお読みいただきありがとうございました!またfreee連携のネタを仕入れたら紹介していきますね!

もり
もり
「Excel・スプレッドシートと、こんな自動連携ができたら便利だな」というネタを募集してます!
freee連携のネタ募集1
【無料企画】クラウド会計freee API自動連携のネタを募集します!会計freeeのAPIを使用して、freeeとExcel・スプレッドシートが自動連携できます。「こんな作業を自動連携したい!」といった、freeeユーザの皆さまからのお悩み・ネタを大募集!...