Class UrlFetchApp

URL取得アプリ

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

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

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

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

関連情報

メソッド

メソッド戻り値の型概要
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.
const 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.
const response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const options = {
  method: 'post',
  payload: formData,
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
const data = {
  name: 'Bob Smith',
  age: 35,
  pets: ['fido', 'fluffy'],
};
const 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 キー/値マップ
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.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const request1 = {
  url: 'https://httpbin.org/post',
  method: 'post',
  payload: formData,
};
// A request may also just be a URL.
const 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 キー/値マップ
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.
const response = UrlFetchApp.getRequest('http://www.google.com/');
for (const 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 キー/値マップ
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