Class UrlFetchApp

UrlFetchApp

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

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

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

このサービスには、https://www.googleapis.com/auth/script.external_request スコープが必要です。ほとんどの場合、Apps Script はスクリプトに必要なスコープを自動的に検出して含めますが、 スコープを 明示的に設定する場合は、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 を解決するように fetch に指示します。
validateHttpsCertificatesBooleanfalse の場合、fetch は HTTPS リクエストの無効な証明書を無視します。デフォルトは true です。
followRedirectsBooleanfalse の場合、fetch は HTTP リダイレクトに自動的に 従いません。元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示していても、fetch は例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。
escapingBooleanfalse の場合、URL 内の予約文字はエスケープされません。デフォルトは 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 を解決するように fetch に指示します。
validateHttpsCertificatesBooleanfalse の場合、fetch は HTTPS リクエストの無効な証明書を無視します。デフォルトは true です。
followRedirectsBooleanfalse の場合、fetch は HTTP リダイレクトに自動的に 従いません。元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示していても、fetch は例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。
escapingBoolean`false` の場合、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 を解決するように fetch に指示します。
validateHttpsCertificatesBooleanfalse の場合、fetch は HTTPS リクエストの無効な証明書を無視します。デフォルトは true です。
followRedirectsBooleanfalse の場合、fetch は HTTP リダイレクトに自動的に 従いません。元の HTTP レスポンスを返します。デフォルトは true です。
muteHttpExceptionsBooleantrue の場合、レスポンス コードが失敗を示していても、fetch は例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。
escapingBoolean`false` の場合、URL 内の予約文字はエスケープされません。falseデフォルトは true です。

戻る

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

承認

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

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