こんにちは。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」をあてはめましょう。
コールバックURLの初期値を上書きして「下書き保存」をクリックします。
この画面で「Client ID」と「Client Secret」を確認することができます。後述の作業で使用します。
※freeeAPIにアクセスするIDとパスワードなので、第三者に知られないよう注意しましょう。
GASでfreee連携アプリを認証する
GASで連携アプリを認証します。
認証用ライブラリ(OAuth2)を追加する
スクリプトエディタを開き、「ライブラリ+」をクリックします。
認証用ライブラリ(OAuth2)のスクリプトIDを入力(コピー&ペースト)し、「検索」をクリックします。
最新のバージョン(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を使うための作業手順を紹介しました[…]