【GAS】Web APIを取得する方法
Google Apps Script(GAS)でWeb APIを取得する方法解説します。いくつくかのAPI連携でサンプルコードも公開しているのでぜひご覧ください。
APIとは
APIとは(Application Programming Interface アプリケーションプログラミングインタフェース)の略で、プログラム同士をつなぐインターフェースを指します。
APIそのものについてはたくさん記事があるので詳細の説明は省きますが、要は一つのプログラムで実現が難しい処理、作業、アウトプット等を、既存の他プログラムとつなぐことで実現できる仕組みのことです。
GASはだれでも簡単に扱えますが、その分複雑な処理が難しかったり、機能制約によりGAS単体では実現できないことが多々あります。API連携でそれらの機能を補ってくれるプログラムとつながることで、GASを使って実現したいことの幅が大きく広がります。
どのようなWeb APIがあるか
世間的によく知られているサービスもAPIを公開していることが多く、連携することで独自ツールを作れたり作業効率を大幅に向上させることが可能となっています。
Yahoo! API
Yahoo! JAPANのIDを持っていれば誰でも利用可能です。ショッピング、テキスト解析、地図などのWeb APIを公開してして、Yahoo!のさまざまなサービスをさらに便利に使うことが可能になっています。
Twitter API
API連携をすることで、例えば、特定のキーワードを含むツイートに対して自動でいいね!したり、またツイート履歴を分析したりできます。
Amazon API
大口出品車向けのMWS(Marketplace Web Service) APIと、主にアフィリエイター向けのProduct Advertising APIの2種類があります。Amazon APIを活用することで独自のリサーチツール、出品・在庫・受注管理ツールなどを自前で作ることも実現可能となっています。
LINE Messaging API
LINEのメッセージ機能を利用できるAPIです。LINEのトーク画面を使った特定のユーザーに限定した双方向のコミュニケーションや、外部サービスと接続・連携したアカウントの作成・開発が可能となります。
GASでWeb APIを取得する手順
それでは郵便番号検索APIを題材に手順を解説します。基本的な手順は同じなので参考にしてみてください。
アクセス条件の確認
まずはどのようにAPIを利用するのか、API連携によって得られる情報の確認を行います。APIによっては利用登録をしてキーの発行を行わなければならないサービスも多いので解説記事や公式ドキュメントを確認しておきましょう。
リクエストURLの確認
http://zipcloud.ibsnet.co.jp/doc/api
郵便番号検索APIでは、このURLにリクエストパラメータを加え、リクエストを行います。GASのHTTPリクエストはUrlFetchAppを使います。
リクエストパラメータの確認
パラメータ名 | 項目名 | 必須 | 説明 |
---|---|---|---|
zipcode | 郵便番号 | ○ | 7桁の数字。ハイフン付きでも可。完全一致検索。 |
callback | コールバック関数名 | – | JSONPとして出力する際のコールバック関数名。UTF-8でURLエンコードした文字列。 |
limit | 最大件数 | – | 同一の郵便番号で複数件のデータが存在する場合に返される件数の上限値(数字) ※デフォルト:20 |
(例)郵便番号「7830060」で検索する場合
https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060
レスポンスフィールド
フィールド名 | 項目名 | 備考 | |
---|---|---|---|
status | ステータス | 正常時は 200、エラー発生時にはエラーコードが返される。 | |
message | メッセージ | エラー発生時に、エラーの内容が返される。 | |
results | --- 検索結果が複数存在する場合は、以下の項目が配列として返される --- | ||
zipcode | 郵便番号 | 7桁の郵便番号。ハイフンなし。 | |
prefcode | 都道府県コード | JIS X 0401 に定められた2桁の都道府県コード。 | |
address1 | 都道府県名 | ||
address2 | 市区町村名 | ||
address3 | 町域名 | ||
kana1 | 都道府県名カナ | ||
kana2 | 市区町村名カナ | ||
kana3 | 町域名カナ |
サンプルコード
function myFunction() {
const zipcode = '7830060'; // 対象となる郵便番号の指定
const url = 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=' + zipcode;
const response = UrlFetchApp.fetch(url);
const content = response.getContentText();
const json = JSON.parse(content);
const result = json.results[0];
console.log(result);
console.log(result.address1);
}
//console.log(result);
{ address1: '高知県’, address2: '南国市’, address3: '蛍が丘’, kana1: 'コウチケン’, kana2: 'ナンコクシ’, kana3: 'ホタルガオカ’, prefcode: ’39’, zipcode: '7830060’ }
//console.log(result.address1);
高知県
GASで取得できるいろいろなWeb API
形態素解析API(gooラボ)
概要
日本語文字列を、形態素と呼ばれる単語単位に分割します。
例えば「この商品はデザインが斬新だ」という文字列は、「この」「商品」「は」「デザイン」「が」「斬新」「だ」というように分割されます。
利用登録が必要ですが、日本語を与えると形態素になって返ってくるというシンプルなAPIなので、APIの練習としておすすめです。
サンプルコード
function myFunction() {
const sentence = '吾輩は猫である。 名前はまだない。 どこで生れたか頓(とん)と見当がつかぬ。';
const apiUrl = 'https://labs.goo.ne.jp/api/morph';
const appId = '[登録後に取得できるAPI ID]';
//goo形態素解析APIにパラメータをセットし、HTTP POSTするためのoptionsを設定
var payload = {
'app_id' : appId,
'sentence' : sentence
};
var options = {
'method' : 'post',
'payload' : payload
};
//goo形態素解析APIにHTTP POSTでリクエストし、JSONの結果をパース
var response = UrlFetchApp.fetch(apiUrl,options).getContentText('utf-8');
var json = JSON.parse(response);
var word_list = json['word_list']
//goo形態素解析APIで処理した結果をログ出力する
console.log(word_list);
}
[ [ [ '吾輩’, '名詞’, 'ワガハイ’ ],
[ 'は’, '連用助詞’, 'ハ’ ],
[ '猫’, '名詞’, 'ネコ’ ],
[ 'で’, '判定詞’, 'デ’ ],
[ 'あ’, '動詞語幹’, 'ア’ ],
[ 'る’, '動詞接尾辞’, 'ル’ ],
[ '。’, '句点’, " ] ],
[ [ '名前’, '名詞’, 'ナマエ’ ],
[ 'は’, '連用助詞’, 'ハ’ ],
[ 'まだ’, '連用詞’, 'マダ’ ],
[ 'な’, '形容詞語幹’, 'ナ’ ],
[ 'い’, '形容詞接尾辞’, 'イ’ ],
[ '。’, '句点’, " ] ],
[ [ 'どこ’, '名詞’, 'ドコ’ ],
[ 'で’, '格助詞’, 'デ’ ],
[ '生れ’, '動詞語幹’, 'ウマレ’ ],
[ 'た’, '動詞接尾辞’, 'タ’ ],
[ 'か’, '接続接尾辞’, 'カ’ ],
[ '頓’, 'Kanji’, 'トン’ ],
[ '(’, '括弧’, " ],
[ 'とん’, 'Kana’, 'トン’ ],
[ ')’, '括弧’, " ],
[ 'と’, '格助詞’, 'ト’ ],
[ '見当’, '名詞’, 'ケントウ’ ],
[ 'が’, '格助詞’, 'ガ’ ],
[ 'つ’, '動詞語幹’, 'ツ’ ],
[ 'か’, '動詞活用語尾’, 'カ’ ],
[ 'ぬ’, '動詞接尾辞’, 'ヌ’ ],
[ '。’, '句点’, " ] ]]
形態素解析できました。
まとめ
Google Apps Script(GAS)でAPI連携する手順をサンプルコードとともに解説しました。
- APIとは「アプリケーションプログラミングインタフェース」のこと
- API連携で他プログラムとつなぐことで、GAS単体では難しい処理でも実現できる幅を広げられる
- Yahoo!、Twitter、LINE等、よく使うサービスもAPI公開しており、独自ツール開発や利便性を上げられる
- 利用には登録してAPI IDが必要な場合がある
- 楽しい
ぜひ参考にしてみてください!