ノンプロ研APIプログラミング講座【freee APIコース】HTTP通信・API
深遠なるfreeeの世界へ旅立つために、「ノンプログラマーのためのスキルアップ研究会」通称ノンプロ研主催のAPIプログラミング講座【freee APIコース】を受講しています。
その受講記録を振り返りも兼ねて記事にしております。
第2回は「freee APIとリクエストの基礎」です。
APIプログラミング講座 freee APIコース第1期・第2回目、本日20時開始です!
— もり@ライター×GASプログラミング講師 (@moripro3) September 22, 2021
全4回+卒業LT大会でお届けします!
【カリキュラム】
1.HTTP通信・API
2.freee APIとリクエストの基礎👈今日はコレ!
3.データの取得
4.データの登録#ノンプロ研 #freeeAPI講座#freeeAPI pic.twitter.com/LSLxesnwlc
freee APIとアプリ
freee API を操作するには、freeeアプリストアの開発者ページからアプリの登録が必要とのことで、まず事前課題で作成したアプリの確認からスタートします。
ここで作成したアプリは、スクリプトファイルと1:1で紐づくので、Googleスプレッドシートで操作する場合、紐付けした以外のスプレッドシートから情報の操作・取得をすることができません。
用途やユーザーに応じてアプリを複数作成するのがオススメとのこと。
続いて権限設定に関して、こちらも用途やユーザーに応じて権限設定を使い分ける必要があります。また権限設定を初期値から変更するとアプリの再認証が必要になるというのが注意点。
アプリが登録されるとClient IDとClient Secretが発行されます。これはアカウントのIDとパスワードのようなものなので、流出しないように注意。
アプリとfreeeアカウントの連携
「アプリ」が「freeeアカウント」を使えるようにしてあげる作業がまず必要になります。ここで登場するのが、OAuth(オーオース)という仕組みです。ちょいちょい耳にするOAuthですが、なんだか難しそうなイメージです。
OAuth2ライブラリと認証URLの取得
難しそうなOAuthですが、OAuth認証のやりとりを簡単に実現できるライブラリが用意されているとのことで、こちらを使用します。これはGoogleの公式ライブラリとのことです。
OAuth2 for Apps Script
スクリプトID:1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
そもそもライブラリとは…
ライブラリとは、作成した関数を他のプロジェクトから利用できる機能です。ノンプロ研だとGAS中級講座で学ぶ内容ですね。
自分自身が作ったライブラリを利用することもできますが、今回のように誰かが準備してくれているライブラリを便利パッケージとして利用できるのがライブラリの魅力です。
【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
ライブラリの使い方
自分のプロジェクトにライブラリを追加する方法はこちら…
GASでAPIを操作をする強い味方「OAuth2 for Apps Script」ライブラリとその導入
リクエストの流れ
続いていよいよfreee APIにリクエストを送信して、情報を取得します。
リクエストURLの作成
リクエストURLとは、APIで情報を操作・取得したい時にそのリクエストを送るURLのことです。これは、何のデータを操作・参照したいかによって異なります。
freee API でのリクエストURLのレシピは、
リクエストURL = 共通エンドポイント + データ種別ごとの個別URL + URLパラメーター
となります。
freee会計を操作・参照する場合は、以下の会計APIリファレンスに記載があります。
https://developer.freee.co.jp/docs/accounting/reference
freee人事労務をを操作・参照する場合は、以下の人事労務APIリファレンスに記載があります。
https://developer.freee.co.jp/docs/hr/reference
URLパラメーターに関しては、操作・取得したい情報項目によって必要かどうかが異なるのですが、URLパラメーターの設定のやり方に関しては第3回目の講座で解説するとのことでした。
ちょっと先取りするには、以下のブログが参考になりそうです。
【GAS×freeeAPI】指定条件の取引一覧を取得する「リクエストURL」の作り方と仕組み
オプションパラメーターの作成
UrlFetchApp.fetch(url, params) のparamsの部分がオプションパラメーターで、この部分に適切な情報をもたせることによってUrlFetchサービスでAPIの情報を操作・取得できるようになります。
APIによっては、このオプションパラメーターの設定で絞り込みなどを行うケースもあり、JSON形式でのオプションパラメーターの書き方に慣れが必要ですが、これはまた別のお話…
const params = {
headers: { 'Authorization': 'Bearer ' + アクセストークン },
method: 'get'
};
freee APIで情報取得する場合は、上記のようなオプションパラメーターを設定します。
リクエストの送信
いよいよリクエストの送信です。前回も登場したUrlFetchサービスでHTTPResponseオブジェクトを取得します。
この戻り値が、HTTPResponseオブジェクトであるというのがポイントですね。
UrlFetchApp.fetch(url, params);
でHTTPResponseオブジェクトを取得できます。
レスポンスの取得
いよいよJSONの登場です。
freee APIの場合、UrlFetchサービスで取得したHTTPResponseオブジェクトの中身はJSON形式の文字列になっています。このJSON文字列をJSONオブジェクトに変換してくれる魔法のメソッドが
JSON.parse()
です。
このparse(パース)は「構文解析する」の意味を持つ英語で、この語感もまたまた重要です。JSON文字列を分析して、GASで扱いやすいJSONオブジェクトにparse(構文解析)してくれます。
会計freee連携アドオンの紹介
講座2日目の最後は、会計freee連携アドオンの紹介です。
freeeにはさまざまなアプリがすでに公開されていて、プログラミングやAPIができなくても情報の取得や連携が可能です。Googleスプレッドシート&freeeユーザーなら一度は見たことある?のが「会計freee連携アドオン」です。
では、さまざまなアプリがすでに存在するからGASやfreee APIを学ぶ必要がなくなるか…というとそうではなく、用意されたフォーマットだと自身の業務に合わせるのにもうひと工夫必要であったり、定期実行などの自動化はトリガーを設定できるプログラミングのほうが便利だったりとあります。
公開されているアプリはあくまで、こういうことができそうだぞ!という参考にとどめ、自分自身のかゆいところに手が届くスクリプトを目指すのがよいと思いました。