初心者でも簡単!Google Apps Scriptで「curl」を実行する方法

GASでcurlってどうやって実行するんだろう?調べても難しくて…。
猫男
猫男
catman
catman
心配するな、catmanがGASでのcurlの実行についてわかりやすく説明するさ。

GASで簡単にcurlを実行する方法

GASでcurlのようにHTTPリクエストを送信するには、UrlFetchAppを使うのが手っ取り早い。まずは基礎を押さえておこう。

UrlFetchApp.fetch()でリクエストを送信

基本の書き方は以下の通りだ。


var response = UrlFetchApp.fetch('https://jsonplaceholder.typicode.com/posts/1');
Logger.log(response.getContentText());

fetch()メソッドを使うことで、指定したURLにHTTPリクエストを送信できる。返り値はHTTPレスポンスだ。

curlに近い形でGASを使うには

もう少しcurlっぽく使いたいとき、オプションを指定するのも可能だ。


var options = {
  "method" : "post",
  "payload" : {
    "name" : "catman",
    "job" : "hero"
  }
};

var response = UrlFetchApp.fetch('https://example.com/api', options);
Logger.log(response.getContentText());

オプションの設定には、メソッド、ペイロード、ヘッダーなどを指定でき、より自由度の高いリクエストを作成できる。

なるほど、オプションも設定できるんですね。curlと似てる感じがしてきました!
猫男
猫男
catman
catman
そのとおりだ。さらに進めば、さまざまなAPIとの連携も可能さ。

実践:GASでAPIを呼び出してみよう

ここでは、ちょっとしたAPIを使ってみよう。

GETリクエストでデータを取得

例えば、猫のデータを取得しよう。


var response = UrlFetchApp.fetch('https://api.thecatapi.com/v1/images/search');
var catData = JSON.parse(response.getContentText());
Logger.log(catData[0].url);

ここでは、GETリクエストでLet’s get catman’s仲間の画像を取得した。

猫の画像GETできました!これで仲間が増えた気がします!
猫男
猫男
catman
catman
いつでも、どんなAPIも扱えるようになるはずさ。

練習問題

GASを使ってPOSTリクエストを作成し、任意のAPIエンドポイントにデータを送信してみましょう。

また、送信後のレスポンスを確認して、データが正しく送信されたことを確認してください。

解答・解説

以下は、POSTリクエストの例です。内容をAPIの仕様に合わせて変更してください。


var url = 'https://example.com/api';
var data = {
  "message": "Hello, World!",
  "username": "catman"
};

var options = {
  "method": "post",
  "contentType": "application/json",
  "payload": JSON.stringify(data)
};

var response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());

url: リクエストを送信するURL。
data: 送信するデータ。本例ではJSONオブジェクトである。
options:
method: リクエストメソッド。ここではPOSTを指定。
contentType: リクエストのコンテンツタイプ。JSONデータを送信するために”application/json”を指定。
payload: 送信するデータ。JSON.stringify()で文字列に変換。

このスクリプトを実行すれば、POSTリクエストが実行され、指定されたエンドポイントにデータが送信される。

レスポンスが正しいかLoggerで結果を確認してみよう。