インターネットでリソースを取得して他のホストと通信します。
このサービスは、URL を取得して他のアプリケーションと通信したり、ウェブ上の他のリソースにアクセスしたりできます。スクリプトは URL 取得サービスを使用して、HTTP リクエストや HTTPS リクエストを発行し、レスポンスを受信できます。URL 取得サービスは、効率とスケーリングのために Google のネットワーク インフラストラクチャを使用します。
このサービスを使用して行われたリクエストは、一連の IP 範囲から発信されます。リクエストを許可リストに登録または承認する必要がある場合は、IP アドレスの全リストを検索できます。
このサービスには、https://www.googleapis.com/auth/script.external_request
スコープが必要です。ほとんどの場合、Apps Script はスクリプトに必要なスコープを自動的に検出して含めます。ただし、スコープを明示的に設定している場合は、UrlFetchApp
を使用するには、このスコープを手動で追加する必要があります。
関連ドキュメント
Methods
メソッド | 戻り値の型 | 概要 |
---|---|---|
fetch(url) | HTTPResponse | URL の取得をリクエストします。 |
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());
パラメータ
名前 | 型 | 説明 |
---|---|---|
url | String | 取得する 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);
パラメータ
名前 | 型 | 説明 |
---|---|---|
url | String | 取得する URL。URL の最大文字数は 2,082 文字です。 |
params | Object | 以下で定義する高度なパラメータを指定する、オプションの JavaScript オブジェクト。 |
拡張パラメータ
名前 | 型 | 説明 |
---|---|---|
contentType | String | コンテンツ タイプ(デフォルトは「application/x-www-form-urlencoded」)。コンテンツ タイプの別の例として、「application/xml; charset=utf-8」があります。 |
headers | Object | リクエストの HTTP ヘッダーの JavaScript Key-Value マップ |
method | String | リクエストの HTTP メソッド: get 、delete 、patch 、post 、または put 。デフォルトは get です。 |
payload | String | リクエストのペイロード(つまり POST 本文)。特定の HTTP メソッド(GET など)はペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかです。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈されます。ここで、値は文字列または blob です。 |
useIntranet | Boolean | 非推奨です。これにより、SDC を通じて、ドメインにリンクされているイントラネット内の指定された URL を解決できるようになります。 |
validateHttpsCertificates | Boolean | false の場合、フェッチは HTTPS リクエストに関して無効な証明書を無視します。デフォルト値は true です。 |
followRedirects | Boolean | false の場合、取得が自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスが返されます。デフォルト値は true です。 |
muteHttpExceptions | Boolean | true の場合、レスポンス コードが失敗を示すと取得が例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。 |
escaping | Boolean | URL 内の 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]);
パラメータ
名前 | 型 | 説明 |
---|---|---|
requests | Object[] | 以下で定義されているリクエストを指定する URL または JavaScript オブジェクトの配列。 |
拡張パラメータ
名前 | 型 | 説明 |
---|---|---|
url | String | 取得する URL。URL の最大文字数は 2,082 文字です。 |
contentType | String | コンテンツ タイプ(デフォルトは「application/x-www-form-urlencoded」)。コンテンツ タイプの別の例として、「application/xml; charset=utf-8」があります。 |
headers | Object | リクエストの HTTP ヘッダーの JavaScript Key-Value マップ |
method | String | リクエストの HTTP メソッド: get 、delete 、patch 、post 、または put 。デフォルトは get です。 |
payload | String | リクエストのペイロード(つまり POST 本文)。特定の HTTP メソッド(GET など)はペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかです。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈されます。ここで、値は文字列または blob です。 |
useIntranet | Boolean | 非推奨です。これにより、SDC を通じて、ドメインにリンクされているイントラネット内の指定された URL を解決できるようになります。 |
validateHttpsCertificates | Boolean | false の場合、フェッチは HTTPS リクエストに関して無効な証明書を無視します。デフォルト値は true です。 |
followRedirects | Boolean | false の場合、取得が自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスが返されます。デフォルト値は true です。 |
muteHttpExceptions | Boolean | true の場合、レスポンス コードが失敗を示すと取得は例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。 |
escaping | Boolean | 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. var response = UrlFetchApp.getRequest("http://www.google.com/"); for(i in response) { Logger.log(i + ": " + response[i]); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
url | String | 検索する URL です。URL の最大文字数は 2,082 文字です。 |
復路
Object
- フィールド名から値へのマッピング。このマップには少なくとも url
、method
、contentType
、payload
、headers
のキーがあります。
承認
この方法を使用するスクリプトには、次の 1 つ以上のスコープで承認が必要です。
-
https://www.googleapis.com/auth/script.external_request
getRequest(url, params)
オペレーションが呼び出されたときに行われたリクエストを返します。
このメソッドは実際には、リクエストを発行しません。
パラメータ
名前 | 型 | 説明 |
---|---|---|
url | String | 検索する URL です。URL の最大文字数は 2,082 文字です。 |
params | Object | 以下で定義する高度なパラメータを指定する、オプションの JavaScript オブジェクト。 |
拡張パラメータ
名前 | 型 | 説明 |
---|---|---|
contentType | String | コンテンツ タイプ(デフォルトは「application/x-www-form-urlencoded」)。コンテンツ タイプの別の例として、「application/xml; charset=utf-8」があります。 |
headers | Object | リクエストの HTTP ヘッダーの JavaScript Key-Value マップ |
method | String | リクエストの HTTP メソッド: get 、delete 、patch 、post 、または put 。デフォルトは get です。 |
payload | String | リクエストのペイロード(つまり POST 本文)。特定の HTTP メソッド(GET など)はペイロードを受け入れません。文字列、バイト配列、blob、JavaScript オブジェクトのいずれかです。JavaScript オブジェクトは、フォーム フィールド名と値のマッピングとして解釈されます。ここで、値は文字列または blob です。 |
useIntranet | Boolean | 非推奨です。これにより、SDC を通じて、ドメインにリンクされているイントラネット内の指定された URL を解決できるようになります。 |
validateHttpsCertificates | Boolean | false の場合、フェッチは HTTPS リクエストに関して無効な証明書を無視します。デフォルト値は true です。 |
followRedirects | Boolean | false の場合、取得が自動的に HTTP リダイレクトに従わず、元の HTTP レスポンスが返されます。デフォルト値は true です。 |
muteHttpExceptions | Boolean | true の場合、レスポンス コードが失敗を示すと取得が例外をスローせず、代わりに HTTPResponse を返します。デフォルトは false です。 |
escaping | Boolean | URL 内の false の予約文字がエスケープされていない場合。デフォルト値は true です。 |
復路
Object
- フィールド名から値へのマッピング。このマップには少なくとも url
、method
、contentType
、payload
、headers
のキーがあります。
承認
この方法を使用するスクリプトには、次の 1 つ以上のスコープで承認が必要です。
-
https://www.googleapis.com/auth/script.external_request