Class UrlFetchApp

UrlFetchApp

インターネット経由でリソースを取得し、他のホストと通信します。

このサービスを使用すると、スクリプトが他のアプリケーションと通信したり、URL を取得してウェブ上の他のリソースにアクセスしたりできるようになります。スクリプトは URL 取得サービスを使用して、HTTP と HTTPS リクエストを送信し、レスポンスを受信できます。URL 取得サービスは、効率とスケーリングを目的として Google のネットワーク インフラストラクチャを使用します。

このサービスを使用して送信されたリクエストは、一連の IP 範囲のプールから送信されます。これらのリクエストを許可リストまたは承認する必要がある場合は、IP アドレスの全リストを検索できます。

このサービスには https://www.googleapis.com/auth/script.external_request スコープが必要です。ほとんどの場合、Apps Script はスクリプトに必要なスコープを自動的に検出して追加しますが、スコープを明示的に設定する場合は、UrlFetchApp を使用するには、このスコープを手動で追加する必要があります。

関連ドキュメント

Methods

メソッド戻り値の型概要
fetch(url)HTTPResponseURL の取得をリクエストします。
fetch(url, params)HTTPResponseオプションの詳細パラメータを使用して URL の取得をリクエストします。
fetchAll(requests)HTTPResponse[]複数のリクエストを発行して、オプションの高度なパラメータを使用して複数の URL を取得します。
getRequest(url)Objectオペレーションが呼び出された場合に行われたリクエストを返します。
getRequest(url, params)Objectオペレーションが呼び出された場合に行われたリクエストを返します。

詳細なドキュメント

fetch(url)

URL の取得をリクエストします。

これは HTTP でも HTTPS でも機能します。

// The code below logs the HTML code of the Google home page.
var response = UrlFetchApp.fetch("http://www.google.com/");
Logger.log(response.getContentText());

パラメータ

名前説明
urlString取得する URL。URL は 2,082 文字以内で指定してください。

リターン

HTTPResponse - HTTP レスポンス データ。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/script.external_request

fetch(url, params)

オプションの詳細パラメータを使用して URL の取得をリクエストします。

これは HTTP でも HTTPS でも機能します。

// Make a GET request and log the returned content.
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
var formData = {
  'name': 'Bob Smith',
  'email': 'bob@example.com',
  'resume': resumeBlob
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it automatically
// defaults to either 'application/x-www-form-urlencoded'
// or 'multipart/form-data')
var options = {
  'method' : 'post',
  'payload' : formData
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
var data = {
  'name': 'Bob Smith',
  'age': 35,
  'pets': ['fido', 'fluffy']
};
var options = {
  'method' : 'post',
  'contentType': 'application/json',
  // Convert the JavaScript object to a JSON string.
  'payload' : JSON.stringify(data)
};
UrlFetchApp.fetch('https://httpbin.org/post', options);

パラメータ

名前説明
urlString取得する URL。URL は 2,082 文字以内で指定してください。
paramsObject詳細パラメータを指定する、オプションの JavaScript オブジェクト。下記に定義します。

拡張パラメータ

名前説明
contentTypeStringコンテンツ タイプ(デフォルトは application/x-www-form-urlencoded)。コンテンツ タイプのもう 1 つの例は、「application/xml; charset=utf-8」です。
headersObjectリクエストの HTTP ヘッダーの JavaScript Key-Value マップ
methodStringリクエストの HTTP メソッド(getdeletepatchpostput)。デフォルトは get です。
payloadStringリクエストのペイロード(つまり、POST 本文)一部の HTTP メソッド(GET など)は、ペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかを指定できます。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈され、値は文字列または blob になります。
useIntranetBoolean非推奨です。これは、(非推奨の)SDC を介して、ドメインにリンクされたイントラネット内の指定された URL を解決するようにフェッチに指示します
validateHttpsCertificatesBooleanfalse の場合、HTTPS リクエストの無効な証明書は取得で無視されます。デフォルトは true です。
followRedirectsBooleanfalse の場合、取得は自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示している場合に例外をスローせず、HTTPResponse を返します。デフォルトは false です。
escapingBooleanURL 内の false 予約文字がエスケープされない場合、デフォルトは true です。

リターン

HTTPResponse - HTTP レスポンス データ。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/script.external_request

fetchAll(requests)

オプションの詳細パラメータを使用して、複数の URL を取得します。

これは HTTP でも HTTPS でも機能します。

// Make both a POST request with form data, and a GET request.
var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
var formData = {
  'name': 'Bob Smith',
  'email': 'bob@example.com',
  'resume': resumeBlob
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it defaults to either
// 'application/x-www-form-urlencoded' or 'multipart/form-data')
var request1 = {
  'url': 'https://httpbin.org/post',
  'method' : 'post',
  'payload' : formData
};
// A request may also just be a URL.
var request2 = 'https://httpbin.org/get?key=value';
UrlFetchApp.fetchAll([request1, request2]);

パラメータ

名前説明
requestsObject[]以下に定義するリクエストを指定する URL または JavaScript オブジェクトの配列。

拡張パラメータ

名前説明
urlString取得する URL です。URL は 2,082 文字以内で指定してください。
contentTypeStringコンテンツ タイプ(デフォルトは application/x-www-form-urlencoded)。コンテンツ タイプのもう 1 つの例は、「application/xml; charset=utf-8」です。
headersObjectリクエストの HTTP ヘッダーの JavaScript Key-Value マップ
methodStringリクエストの HTTP メソッド(getdeletepatchpostput)。デフォルトは get です。
payloadStringリクエストのペイロード(つまり、POST 本文)一部の HTTP メソッド(GET など)は、ペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかを指定できます。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈され、値は文字列または blob になります。
useIntranetBoolean非推奨です。これは、(非推奨の)SDC を介して、ドメインにリンクされたイントラネット内の指定された URL を解決するようにフェッチに指示します
validateHttpsCertificatesBooleanfalse の場合、HTTPS リクエストの無効な証明書は取得で無視されます。デフォルトは true です。
followRedirectsBooleanfalse の場合、取得は自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示している場合に例外をスローせず、HTTPResponse を返します。デフォルトは false です。
escapingBooleanfalse の場合、URL 内の予約文字はエスケープされません。デフォルトは true です。

リターン

HTTPResponse[] - 各入力リクエストからの HTTP レスポンス データの配列。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/script.external_request

getRequest(url)

オペレーションが呼び出された場合に行われたリクエストを返します。

このメソッドは実際にはリクエストを発行しません。

// The code below logs the value for every key of the returned map.
var response = UrlFetchApp.getRequest("http://www.google.com/");
for(i in response) {
  Logger.log(i + ": " + response[i]);
}

パラメータ

名前説明
urlString検索する URL です。URL は 2,082 文字以内で指定してください。

リターン

Object - フィールド名と値のマッピングマップには、少なくとも urlmethodcontentTypepayloadheaders のキーがあります。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/script.external_request

getRequest(url, params)

オペレーションが呼び出された場合に行われたリクエストを返します。

このメソッドは実際にはリクエストを発行しません。

パラメータ

名前説明
urlString検索する URL です。URL は 2,082 文字以内で指定してください。
paramsObject下記で定義される詳細パラメータを指定する JavaScript オブジェクト(省略可)。

拡張パラメータ

名前説明
contentTypeStringコンテンツ タイプ(デフォルトは application/x-www-form-urlencoded)。コンテンツ タイプのもう 1 つの例は、「application/xml; charset=utf-8」です。
headersObjectリクエストの HTTP ヘッダーの JavaScript Key-Value マップ
methodStringリクエストの HTTP メソッド(getdeletepatchpostput)。デフォルトは get です。
payloadStringリクエストのペイロード(つまり、POST 本文)一部の HTTP メソッド(GET など)は、ペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかを指定できます。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈され、値は文字列または blob になります。
useIntranetBoolean非推奨です。これは、(非推奨の)SDC を介して、ドメインにリンクされたイントラネット内の指定された URL を解決するようにフェッチに指示します
validateHttpsCertificatesBooleanfalse の場合、HTTPS リクエストの無効な証明書は取得で無視されます。デフォルトは true です。
followRedirectsBooleanfalse の場合、取得は自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示している場合に例外をスローせず、HTTPResponse を返します。デフォルトは false です。
escapingBooleanURL 内の false 予約文字がエスケープされない場合、デフォルトは true です。

リターン

Object - フィールド名と値のマッピングマップには、少なくとも urlmethodcontentTypepayloadheaders のキーがあります。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/script.external_request