[GAS][会計freee]アプリとアクセストークンを準備する

freee

どうも。つじけ(tsujikenzo)です。この連載では 「会計freeeAPIを使って残高確認表を作成しよう」 について全7回でお送りします。今日は2回目で 「アプリとアクセストークンを準備する」 をお届けします。

前回のおさらい

前回は、「連載の概要と準備運動」 ということで、この連載の概要と、事前準備・予備知識についてお届けしました。

[GAS]会計freeeAPIを使って残高確認表を作成しよう
どうも。つじけ(tsujikenzo)です。この連載では 「会計freeeAPIを使って残高確認表を作成しよう」 について全7回でお送りします。今日は1回目で 「連載の概要と準備運動」 をお届けします。この連載について今日の前半は、...

今回は、「アプリとアクセストークンを準備する」 をお届けします。

「アプリ」と「アクセストークン」は、一度作成すればよいもので、GASを実行するたびに設定を確認したり、変更するものではありません。

この連載では、認証の仕組みについて深い解説はしませんので、必要なスクリプトを実行できるように読み進めていきましょう。

アプリ

前半は、「アプリ」についてです。

アプリとは

「アプリ」とは、会計freee上のさまざまな情報を操作するための「アプリケーション」の略です。会計freeeでは、ユーザーが作成したアプリを 「マイアプリ」 と呼びます。

マイアプリはGASで操作します。その、最大の役割は「本人確認」です。会計freee上には機密情報がたくさん登録されています。情報を操作するための本人確認を、マイアプリできちんと行います。

マイアプリの作成方法

会計freeeにログインします。

事業所が1つしかない場合や、アカウントを切り替える必要がない場合は、この手順は飛ばしてください。右上のアカウント情報をクリックして、事業所を切り替えます。

ご自身のアカウントでは操作をしたくないという方は、freeeで用意されている「開発用テスト事業所」を作成することを強くオススメします。架空の銀行口座や、取引のダミーデータが登録されていますので、本番と同様のテストができます。

freee API スタートガイド - freee Developers Community
freee API スタートガイド 以下の手順に沿ってfreee APIの活用をはじめてみよう ここでは最初のfreee APIコールをするためのテスト事業所やテストアプリケーション(以下の図の黄色)を作成するステップを … Continue reading freee API スタートガイド →

事業所を切り替えたら、[関連プロダクト・サービス]から[freeeアプリストア]をクリックします。

アプリストアが表示されたら、[開発者ページ]をクリックします。

右上の[アプリ管理]をクリックします。

開発アプリ一覧が表示されます。はじめてページを開いたときはアプリがなにもありません。

[+新規追加]をクリックします。

[アプリ名][概要][利用規約の同意]を入力して、最後に右上の[作成]をクリックします。

アプリが作成され、アプリの基本情報画面が表示されます。

基本情報画面では以下の3項目が重要になります。
1. コールバックURL
2. クライアントID
3. クライアントシークレット

後ほど使いますので、メモ帳などにコピペしておきましょう。そしてこの3つは、会計freeeの情報にアクセスするための大切な個人情報 になりますので、他人には教えないようにしましょう。

コールバックURLの設定

コールバックURLには、コンテナバインドスクリプトのスクリプトIDを使用した、下記URLを指定します。

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

事前準備で作成したコンテナバインドスクリプトのスクリプトIDを確認しましょう。

コールバックURL欄に入力して、必ず「下書き保存」をクリックします。

マイアプリの作成はここまでです。

アクセストークン

後半は、「アクセストークンについて」です。

アクセストークンとは

「アクセストークン」とは、マイアプリが使用する、会計freeeの情報にアクセスするための、いわば秘密のパスワードです。

そして、会計freeeとマイアプリでアクセストークンをやりとりする処理は、完全に自動化されており、私たちユーザーにとって無意識で安全に使えるものになっています。

書かなければならないスクリプトも少ないですので、手順通りに進めましょう。

アクセストークンの取得

スクリプトエディターを開きます。

スクリプトファイル[アクセストークン取得]を作成します。

下記コードをコピペします。

//マイアプリ情報
const CLIENT_ID = 'クライアントID';
const CLIENT_SECRET = 'クライアントシークレット';

// 認証のエンドポイントとなるダイアログを表示します。
function alertAuth() {

const service = getService();
const authorizationUrl = service.getAuthorizationUrl();

const template = HtmlService.createTemplate(
'<a href="<?= authorizationUrl ?>" target="_blank">認証</a>. ' +
'こちらをクリックすると表示される新しいウィンドウで「許可する」をクリックしてください。');
template.authorizationUrl = authorizationUrl;

const page = template.evaluate();
SpreadsheetApp.getUi().showModalDialog(page, "認証をしてください");

}

//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('認証に失敗しました。');
};
}

//アクセストークン取得
function getMyAccessToken() {

//freeeAPIのサービスからアクセストークンを取得
const accessToken = getService().getAccessToken();
console.log(accessToken);

}

マイアプリ情報に、「クライアントID」と「クライアントシークレット」を入力します。

//マイアプリ情報
const CLIENT_ID = 'クライアントID';
const CLIENT_SECRET = 'クライアントシークレット';

alertAuth()を実行したあとに、バインドしているスプレッドシートを開きます。
(初回実行時は認証を求められますので、ご対応お願いします。)

ダイアログメッセージに表示されている[認証]をクリックします。

「アプリ連携の開始」ウィンドウが表示されたら、[許可する]をクリックします。

このような表示がでたら認証成功です。ウィンドウは閉じて構いません。

これで、アクセストークンを取得する準備が整いました。スクリプト内のgetMyAccessToken()を実行してみましょう。

アクセストークンを取得できています。

アクセストークンを取得する準備は、以上です。今後は、プロジェクトの内のどこでも以下のステートメントを記述するだけで、アクセストークンが取得できます。

//アクセストークンを取得する
const accessToken = getService().getAccessToken();

まとめ

以上で、「アプリとアクセストークンを準備する」 ということで、自分専用の「マイアプリ」を作成し、アクセストークンを取得するステートメントを作成しました。

一度認証作業を行えば、後は無意識にアクセストークンを取得できますので、私たちノンプログラマーでも楽にプログラミングができます。

次回は 「会計freeeAPIを操作する」 をお届けします。

この連載の目次

[GAS]会計freeeAPIを使って残高確認表を作成しよう
1. [GAS][会計freee]連載の概要と準備運動
2. [GAS][会計freee]アプリとアクセストークンを準備する
3. [GAS][会計freee]会計freeeAPIを操作する
4. [GAS][会計freee]事業所IDを取得しよう
5. [GAS][会計freee]取引(収入/支出)を取得しよう
6. [GAS][会計freee]取引(収入/支出)を登録しよう
7. [GAS][会計freee]残高確認表を作成しよう

タイトルとURLをコピーしました