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 メソッド: getdeletepatchpost、または put。デフォルトは 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 メソッド: getdeletepatchpost、または put。デフォルトは 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 メソッド: getdeletepatchpost、または put。デフォルトは 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