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')です。コンテンツ タイプの別の例は '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')です。コンテンツ タイプの別の例は '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')です。コンテンツ タイプの別の例は '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