雨の日

ノンプロ研APIプログラミング講座【freee APIコース】HTTP通信・API

ノンプロ研APIプログラミング講座【freee APIコース】HTTP通信・API

深遠なるfreeeの世界へ旅立つために、「ノンプログラマーのためのスキルアップ研究会」通称ノンプロ研主催のAPIプログラミング講座【freee APIコース】を受講しています。

その受講記録を振り返りも兼ねて記事にしております。

記念すべき第1回は「HTTP通信・API」です。

私たちが日々なにげなく使っているインターネットですが、普段見ているwebサイトがどうやってカラフルで多彩なプレゼンテーションができているのか、あまり意識することはないかもしれません。

webページの表示も、誰かが用意した情報を取得して手元のブラウザで表示しているのですが、そのプロセスで意識せずに使っているHTTP通信の基礎をきっちり学びました。

情報をとってくるという意味のFetchの語感が理解できるか

URLを入力するとパッと表示されるwebページですが、これもあくまで情報を取りに行って手元で表示しているというプロセスなのですが、Fetchという英語のニュアンスがまさにドンピシャで、GASでもAPIの情報を取得するためにUrl Fetchサービスを使います。

このGASのUrl Fetchサービスは、APIの取得だけでなくスクレイピング的に指定したwebページの定期的な情報取得にも使えます。

JSON形式でやってくる

多くのAPIでデータを取得しようとするとJSON形式のデータで取得できます。JSON形式とは、JavaScript Object Notationの略でアプリケーション間のデータのやり取りをする文字列データの形式の一種です。

GASでJSONの操作をするには、JSONオブジェクトに変換して操作します。このJSON文字列・JSONオブジェクトが取り扱いにクセがあって、必要な情報を掘り当てるまでゴリゴリ掘っていく作業が必要で、慣れが必要だなと思いました。

実践編!Url Fetchサービスで気象庁の天気予報を取得してみる

Url Fetchサービスのウォーミングアップに気象庁の天気予報を取得してみようと思いました。気象庁の天気予報は、仕様やサービスの継続性が約束されていないという意味でAPIではないとのことですが、都道府県別の天気予報をURLにアクセスすることでJSON形式で取得できます。

function weatherForecast() {
  const prefCode = '32'; // https://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html
  const url = `https://www.jma.go.jp/bosai/forecast/data/overview_forecast/${prefCode}0000.json`;
  const response = UrlFetchApp.fetch(url);
  const objJson = JSON.parse(response.getContentText());
  console.log(objJson);
}

シンプルな上記のようなコードで、下記のオブジェクトが取得できました。

{
    publishingOffice: '松江地方気象台',
      reportDatetime: '2021-09-21T16:32:00+09:00',
        targetArea: '島根県',
          headlineText: '島根県では、22日未明から22日昼前まで急な強い雨や落雷に注意してください。',
            text: ' 島根県は、高気圧に覆われて概ね晴れています。\n\n 21日夜は、前線や湿った空気の影響で概ね曇り、雨の降る所がある見込みです。\n\n 22日は、前線や湿った空気の影響で曇り、朝にかけて雨が降るでしょう。雷を伴って激しく降る所がある見込みです。前線の通過後は高気圧に覆われて晴れるでしょう。'
  }

オブジェクトを取得できたら、ここから必要な情報を抽出・整形して他のアプリに通知したりと利用できるようになります。

今回はシンプルな構造のJSONなので取り扱いが簡単そうですね。

シリーズ目次

  1. ノンプロ研【freee APIコース】事前課題
  2. ノンプロ研【freee APIコース】HTTP通信API
  3. ノンプロ研【freee APIコース】freee APIとリクエストの基礎
Share on:
Previous Post
WE WANT YOU.
freeeAPI

ノンプロ研APIプログラミング講座【freee APIコース】freee APIとリクエストの基礎

Next Post
ダンボールに入った犬
freeeAPI

ノンプロ研講座「GAS×freee APIコース」はじめてのプログラム、変数、演算、データ型