[GAS][会計freee]会計freeeAPIを操作する

freee

どうも。つじけ(tsujikenzo)です。この連載では 「会計freeeAPIを使って残高確認表を作成しよう」 について全7回でお送りします。今日は3回目で 「会計freeeAPIを操作する」 をお届けします。

前回のおさらい

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

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

今回は 「会計freeeAPIを操作する」 をお届けします。座学的な内容になってしまいますが、きちんとAPIの基礎を理解しましょう。

APIとは

APIに関しては、数多くの記事や書籍があります。なので、今回は「たとえ話」をしてみたいと思います。

APIは、Application Programming Interface (アプリケーション・プログラミング・インタフェース) の略です。

インターフェイスなので、たとえると 「窓口」 だと思っていただいて構いません。

外国人が日本で活躍するには

日本で活躍したい外国人「KENZO-san」が、日本に出入国をする場合は、労働ビザの取得や、許可証の返却など、さまざまな手続きを取る必要があります。

その手続きの窓口になっているのが、「入国管理局」です。

KENZO-sanは、母国語で手続きを行いたいですが、入国管理局は限られた言語のみ受付をしています。大切なのは、やりとりの決まりごとを決めないと、お互いに手続きができないことです。

この決まりごとを 「プロトコル」 と呼びます。

もし、やりとりをインターネットで行う場合は、HTTP、Hyper Text Transfer Protocol(ハイパーテキストトランスファープロトコル)という決まりごとでやりとりをしようね、ということになります。

HTTPリクエスト/レスポンス

「窓口」に対して、HTTPという決まりごとを守って、手続きのお願いをすることを 「HTTPリクエスト」 と呼びます。

一方で、HTTPリクエストを受け取った窓口が、おこなう返事のことを 「HTTPレスポンス」 と呼びます。

入国管理局への手続きは、いくつかの種類があります。
– 届出・・・書類を用意して提出するだけで手続きが完了する
– 申請・・・手続きが完了するためには、入国管理局による審査が必要

なので、目的に合わせてどのような手続きが必要なのか、ちゃんと理解する必要があります。

同様に、HTTPリクエストにも、いくつかの種類があります。
– GET・・・情報を取得する
– POST・・・情報を作成する
– DELETE・・・情報を削除する
– PUT・・・情報を更新する

なので、「窓口」つまり相手側のAPIに対して、適切なHTTPリクエストを送信することで、希望する返答「HTTPレスポンス」を受け取ることが、「APIを操作する」 といえます。

最近よく耳にする「API」は、ほぼインターネット上でやりとりをしますので 「Web API」 とも呼ばれます。

エンドポイント

APIはアプリケーションの窓口のことでしたが、手続きのために公開されている受付が 「エンドポイント」 です。

手続きによって、やりとりをするエンドポイントが変わります。

Web APIでは、インターネットでやりとりをしますので、エンドポイントが変わるということは、手続きによって、アクセスするURL先を変えていく ということです。

エンドポイントは、APIを公開しているサービス側で情報提供していることが多いです。この情報提供を 「リファレンス」 と呼びます。よくビジネスの世界で「リファレンスを参照してください」と言いますが、「リファレンス」とは「参照」という意味 なので、やたらカタカナ語を使うのは避けた方がいいですね。。

会計freeeのAPIリファレンス

会計freeeには、会計APIリファレンス(以降、リファレンス)が用意されています。

会計APIリファレンス - freee Developers Community
   

リファレンスは項目ごとに分かれており、「HTTPリクエストの種類」、「目的」、「エンドポイント」が分かりやすく表示されています。

たとえ話のKENZO-sanは、ここでさようならです。日本で活躍することはもちろん、世界で活躍するビジネスマンを目指しているそうです。

HTTPリクエスト

会計freeeAPIを操作するということは、HTTPリクエストを正しく送信するということでした。

今回は「増えすぎてしまった取引先を管理したい」という要求に応えたいと思います。

それでは、実際にHTTPリクエストを送信する流れを確認しましょう。

リファレンスの確認:GET

HTTPリクエストを送信する際に、まず最初に行うことは、リファレンスを確認 することです。

[Partners取引先]という項目があります。

まずは登録されているすべての取引先を見たいと思いますので「取引先一覧の取得」をクリックします。

取引先一覧の取得のHTTPリクエストの種類は「GET」です。

GETには、3つの項目が表示されています。
– 概要・・・このエンドポイントの概要
– Parameters(パラメーター)・・・エンドポイントの詳細設定方法
– Responses(レスポンス)・・・受け取るHTTPレスポンス例

Partnersの[Try it out]をクリックすると、エンドポイントに付与する詳細を入力できます。

「取引先一覧の取得」では以下の4項目を指定できるようです。

パラメーターの入力が終わったら[Excute]をクリックします。

画面をスクロールすると、[Request URL](リクエストURL)が生成されています。

このリクエストURLを使って、会計freeeからデータを取得することになります。GASの書き方は追ってご説明いたします。

リファレンスの確認:POST

新しく取引先を登録したいという場合は、「取引先の作成」をクリックします。

取引先の作成のHTTPリクエストの種類は「POST」です。POSTには 「リクエストボディ」 と呼ばれる、POSTリクエストで送信可能なテキストデータを設定する項目があります。

POSTには、4つの項目が表示されています。
– 概要・・・このエンドポイントの概要
– Parameters(パラメーター)・・・エンドポイントの詳細設定方法
– Request body(リクエストボディ)・・・POSTリクエストで送信可能なテキストデータ
– Responses(レスポンス)・・・受け取るHTTPレスポンス例

Partnersの[Try it out]をクリックすると、リクエストボディを作成できます。

あらかじめ初期データが入力さていますので、必要に応じて、テキストを変更してください。

リクエストボディの入力が終わったら[Excute]をクリックします。

画面をスクロールすると、[Request URL](リクエストURL)が生成されています。

POSTリクエストの場合、このリクエストURLとリクエストボディを使って、会計freeeにデータを登録することになります。GASの書き方は追ってご説明いたします。

HTTPレスポンス

これまでは、HTTPリクエストをみてきました。最後に 「HTTPレスポンス」 を確認しましょう。

おさらいですが、HTTPレスポンスとは、HTTPリクエストを受け取った窓口が、おこなう返事のこと でした。

では、実際にはどのような返事をするのでしょうか。

リファレンスの確認

ふたたび、「取引先一覧の取得」のリファレンスを確認します。

Responses(レスポンス)は、このような見出しの構造になっています。

Code:Description

わかりやすく日本語にするとこのようになります。

ステータスコード:説明

ステータスコード

ステータスコードとは、HTTPリクエストが正常に受け付けされたかを示すコードです。

世界中で、一番有名なステータスコードは 「404 Not Found」 だと思います。「URLが不明です」というエラーメッセージです。

「200」はHTTPリクエストが成功したことを示すステータスコードです。

リファレンスのResponses(レスポンス)の1項目目は、ステータスコードが200だった場合(HTTPリクエストが成功した場合)、どのようなレスポンスを返すのか が表示されています。

同様に、ステータスコードが400だった場合(HTTPリクエストが失敗した場合)、どのようなレスポンスを返すのかが表示されています。

JSONとは

レスポンスの中身は、「JSON形式」 と呼ばれる テキストデータ です。

JSONについて詳しい解説は、過去にブログを書いたことがありますので、こちらもご参照いただければ幸いです。

[JSON]【基礎前編】JSONとは何か
どうも。つじけ(tsujikenzo)です。このシリーズでは、JSONについて、全3回でお送りします。(2021年11月に大幅にリニューアルしました)はじめにJSONは、JavaScript Object Notation...

JSONの加工(詳細は後述)

JSONはテキストデータですが、その加工は、2つのメソッドを覚えていただければ問題ありません。

//JSONをJSONオブジェクトに変換する
JSON.parse(JSON);

//JSONオブジェクトをテキスト型に変換する
JSON.stringify(JSONオブジェクト);

今回はメソッドの紹介だけです。2つのメソッドの詳しい解説は、次回以降、GASを書くときにお伝えします。

まとめ

以上で、「会計freeeAPIを操作する」 ということで、「APIとはなにか」、「HTTPリクエストとHTTPレスポンス」などをお届けしました。

座学的な内容ばかりで、退屈だったかもしれません。。。

次回以降はGASを使って、会計freeeAPIをガンガン操作していきたいと思います。

「HTTPリクエストを送信」とか、「HTTPリクエストが成功」とか、「HTTPレスポンスがJSONを返す」といった動作を、実際に手を動かして経験していきましょう。

次回は 「事業所IDを取得しよう」 をお届けします。

この連載の目次

[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をコピーしました