![見出し画像](https://assets.st-note.com/production/uploads/images/128679071/rectangle_large_type_2_138bb8dccc1e06735ff4a8b7232d72c8.png?width=1200)
GAS x freee APIライブラリの事前準備
事前準備編の最終回です。
Google Apps Script(以降GAS)でfreeeを簡単に操作するためのライブラリを管理人がコツコツと作成しております。
ライブラリは、GASで作成した関数を他のプロジェクトから再利用できるようにまとめたものです。
freee APIライブラリの注意事項
本ライブラリを使用したことによって発生したいかなる結果の責任は負いかねますので、使用者の自己責任にてのみご使用ください。
言うまでもなく会計・経理のデータは非常にセンシティブなので、事前にテスト事業所などでしっかりとテストを行った上で利用してください。現状、テスト甘めでアップデートしていっています。
使用者ご自身の経理業務、所属している企業の経理業務、税理士・会計事務所に所属する方が業務で使用する場合は、無償でご自由にお使いください。 その他のケース(本ライブラリを利用して有償のサービスを提供する等)は、事前にご相談いただきますようお願い致します。
ライブラリの使用方法とスクリプトIDの追加
ライブラリを使用するには、スクリプトエディタの左側に表示されているライブラリの+アイコンをクリックします。
![](https://assets.st-note.com/img/1706100640581-jt7LdrEkPE.png)
スクリプトIDの欄に以下のスクリプトIDを入力します。
1ElufoYGO1vJKDyGawAvpXjkJ5nlH3846eeAEP1mRfUV1LYk8IwfpAfpX
![](https://assets.st-note.com/img/1706100763209-sO98zRJTbe.png?width=1200)
![](https://assets.st-note.com/img/1706100902725-0GoYdDVTc1.png?width=1200)
バージョンは自動で最新のものが選択されますので、そのまま追加ボタンをクリックしてください。
![](https://assets.st-note.com/img/1706101240822-tQ4wLbiKj6.png)
freee APIライブラリが追加されます。
事業所IDを取得してみる
freee APIの操作でしばしば必要になるのが、事業所IDです。この事業所IDは、freeeにログイン後に右上の事業所名にカーソルを合わせた時に確認できる事業所番号とは別物です。残念ながらfreeeのUI画面では確認する方法はありません。
![](https://assets.st-note.com/img/1706102413803-jlnBJtV812.png)
この事業所IDは、勘定科目、取引先、品目、税区分などなど…ありとあらゆるAPI操作で必要なパラメーターとなります。
ライブラリを使用しない場合
まずライブラリを使用しない場合に、特定の事業所名に対応するfreeeAPIの事業所IDを取得するスクリプトは以下となります。
/**
* 特定の事業所名に対応するfreeeAPIの事業所IDを取得する関数
*
* @return {number} 指定した事業所名に対応する事業所ID
*/
function testMyCompanyId() {
// 取得したい事業所の表示名
const companyDisplayName = 'freeeラボ(法人)ベーシック';
// freeeAPIのアクセストークンを取得
const accessToken = getFreeeAccessToken();
// freeeAPIの事業所情報取得エンドポイント
const urlRequest = 'https://api.freee.co.jp/api/1/companies';
// HTTPリクエストのパラメータ設定
const params = {
method: 'get',
headers: { 'Authorization': 'Bearer ' + accessToken }
};
// HTTPリクエストを送信し、レスポンスを取得
const response = UrlFetchApp.fetch(urlRequest, params).getContentText();
const objJson = JSON.parse(response);
// 取得した事業所情報の中から指定した事業所名を検索
const aryCompany = objJson.companies;
for (const company of aryCompany) {
if (company.display_name === companyDisplayName) {
console.log(company.id);
return company.id;
};
}
}
ライブラリを使用して事業所IDを取得する
これをライブラリを使用すると
/**
* ライブラリを利用して特定の事業所名に対応するfreeeAPIの事業所IDを取得するデモ関数
*/
function demoLibMyCompanyId() {
const accessToken = getFreeeAccessToken();
const company_id = freeeAPI.myCompanies(accessToken).getMyCompanyId('freeeラボ(法人)ベーシック');
console.log(company_id);
}
とスクリプトを簡潔に記載できます。
![](https://assets.st-note.com/img/1706105801258-T3mOnmKDUz.png)
今回のtestMyCompanyId関数とdemoLibMyCompanyId関数は、test/CompanyIDという名前のファイルに追加しました。
freee APIライブラリによる事業所情報の取得
freee APIライブラリでは、MyCompaniesクラスを用意して、freeeの事業所情報に関連する操作を簡単に行えるようにしています。
ここで用意しているメソッドは以下の3種類です(2024/01/24現在)。
getMyCompanies() - 全ての事業所情報を配列で返すメソッド
getMyCompanyId(company_name) - 指定した名称の事業所IDを返すメソッド
getMyCompanies2Sheet(sheetName) - 指定したシート名のシートに事業所情報一覧を取得するメソッド
もっとも頻繁に使用するであろうgetMyCompanyIdメソッドは、引数に操作対象の事業所名を渡すと、その事業所のIDが戻り値として取得できます。
const company_id = freeeAPI.myCompanies(accessToken).getMyCompanyId('ここに事業所名を入力する');
認証時に選択した事業所しか操作できない
事前準備マニュアルに沿って認証した場合、認証時に選択した事業所しかAPI経由で操作できないようになっています。
MyCompaniesクラスの各メソッドで、認証したfreeeアカウントに紐づく全ての事業所のIDを取得することはできますが、取引や取引先の操作などは、認証時に選択した事業所以外ではエラーになります。
この記事が気に入ったらチップで応援してみませんか?