透過網際網路擷取資源,並與其他主機通訊。
這項服務可讓指令碼與其他應用程式通訊,或存取其他資源 從網路上擷取網址指令碼可以使用網址擷取服務發出 HTTP 和 HTTPS 以及接收回應「網址擷取」服務會使用 Google 的網路基礎架構 提升效率和資源調度目的
使用這項服務發出的要求是來自一組 IP 範圍。如有下列情形,您可以查看 IP 位址的完整清單。 您必須核准或核准這些要求。
這項服務需要https://www.googleapis.com/auth/script.external_request
範圍。在大多數情況下,Apps Script 會自動偵測並納入指令碼所需的範圍,
但如果您要設定範圍
明確,您必須手動新增此範圍,才能使用 UrlFetchApp
。
另請參閱
方法
方法 | 傳回類型 | 簡短說明 |
---|---|---|
fetch(url) | HTTPResponse | 發出擷取網址的要求。 |
fetch(url, params) | HTTPResponse | 透過選用的進階參數發出擷取網址的要求。 |
fetchAll(requests) | HTTPResponse[] | 使用選用的進階參數,提出多個網址擷取要求。 |
getRequest(url) | Object | 傳回叫用作業時發出的要求。 |
getRequest(url, params) | Object | 傳回叫用作業時發出的要求。 |
內容詳盡的說明文件
fetch(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 | 要擷取的網址。網址的長度上限為 2,082 個字元。 |
回攻員
HTTPResponse
:HTTP 回應資料。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/script.external_request
fetch(url, params)
透過選用的進階參數發出擷取網址的要求。
這適用於 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 | 要擷取的網址。網址的長度上限為 2,082 個字元。 |
params | Object | 選用的 JavaScript 物件,用於指定下方定義的進階參數。 |
進階參數
名稱 | 類型 | 說明 |
---|---|---|
contentType | String | 內容類型 (預設為 'application/x-www-form-urlencoded').另一個內容類型範例為「application/xml」 charset=utf-8'。 |
headers | Object | 請求中 HTTP 標頭的 JavaScript 鍵/值對應 |
method | String | 要求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。預設為 get 。 |
payload | String | 酬載 (也就是 POST 主體) 的要求。特定 HTTP 方法 (例如 GET) 不接受酬載。可以是字串、位元組陣列 blob 或 JavaScript 物件系統會將 JavaScript 物件解讀為表單欄位的對應 對應至值,其中值可以是字串或 blob。 |
useIntranet | Boolean | 已淘汰,這用於指示擷取作業來解析指定的 連結至您網域的內部網路中的網址,使用 (已淘汰) SDC |
validateHttpsCertificates | Boolean | 如果 false 擷取任何值,則擷取作業忽略
HTTPS 要求的憑證無效。預設值為 true 。 |
followRedirects | Boolean | 如果 false 沒有自動擷取
追蹤 HTTP 重新導向它會傳回原始 HTTP 回應預設值為 true 。 |
muteHttpExceptions | Boolean | 如果 true 擷取作業未擲回
例外狀況,並改為傳回 HTTPResponse 。預設值為 false 。 |
escaping | Boolean | 如果網址中的 false 保留字元不是
逸出。預設值為 true 。 |
回攻員
HTTPResponse
:HTTP 回應資料。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/script.external_request
fetchAll(requests)
使用選用的進階參數,提出多個網址擷取要求。
這適用於 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[] | 網址或 JavaScript 物件的陣列,按定義的定義提出要求 。 |
進階參數
名稱 | 類型 | 說明 |
---|---|---|
url | String | 要擷取的網址網址的長度上限為 2,082 個字元。 |
contentType | String | 內容類型 (預設為 'application/x-www-form-urlencoded').另一個內容類型範例為「application/xml」 charset=utf-8'。 |
headers | Object | 請求中 HTTP 標頭的 JavaScript 鍵/值對應 |
method | String | 要求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。預設為 get 。 |
payload | String | 酬載 (也就是 POST 主體) 的要求。特定 HTTP 方法 (例如 GET) 不接受酬載。可以是字串、位元組陣列 blob 或 JavaScript 物件系統會將 JavaScript 物件解讀為表單欄位的對應 對應至值,其中值可以是字串或 blob。 |
useIntranet | Boolean | 已淘汰,這用於指示擷取作業來解析指定的 連結至您網域的內部網路中的網址,使用 (已淘汰) SDC |
validateHttpsCertificates | Boolean | 如果 false 擷取任何值,則擷取作業忽略
HTTPS 要求的憑證無效。預設值為 true 。 |
followRedirects | Boolean | 如果 false 沒有自動擷取
追蹤 HTTP 重新導向它會傳回原始 HTTP 回應預設值為 true 。 |
muteHttpExceptions | Boolean | 如果為 true ,擷取作業不會擲回
例外狀況,並改為傳回 HTTPResponse 。預設值為 false 。 |
escaping | Boolean | 如果是 false ,就表示網址中的保留字元不是
逸出。預設值為 true 。 |
回攻員
HTTPResponse[]
— 每個輸入要求的 HTTP 回應資料陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
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 | 要查詢的網址。網址的長度上限為 2,082 個字元。 |
回攻員
Object
:欄位名稱與值的對應。對應至少包含下列索引鍵:url
、
method
、contentType
、payload
和headers
。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/script.external_request
getRequest(url, params)
傳回叫用作業時發出的要求。
這個方法不會實際發出要求。
參數
名稱 | 類型 | 說明 |
---|---|---|
url | String | 要查詢的網址。網址的長度上限為 2,082 個字元。 |
params | Object | 選擇性的 JavaScript 物件,用於指定下方定義的進階參數。 |
進階參數
名稱 | 類型 | 說明 |
---|---|---|
contentType | String | 內容類型 (預設為 'application/x-www-form-urlencoded').另一個內容類型範例為「application/xml」 charset=utf-8'。 |
headers | Object | 請求中 HTTP 標頭的 JavaScript 鍵/值對應 |
method | String | 要求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。預設為 get 。 |
payload | String | 酬載 (也就是 POST 主體) 的要求。特定 HTTP 方法 (例如 GET) 不接受酬載。可以是字串、位元組陣列 blob 或 JavaScript 物件系統會將 JavaScript 物件解讀為表單欄位的對應 對應至值,其中值可以是字串或 blob。 |
useIntranet | Boolean | 已淘汰,這用於指示擷取作業來解析指定的 連結至您網域的內部網路中的網址,使用 (已淘汰) SDC |
validateHttpsCertificates | Boolean | 如果 false 擷取任何值,則擷取作業忽略
HTTPS 要求的憑證無效。預設值為 true 。 |
followRedirects | Boolean | 如果 false 沒有自動擷取
追蹤 HTTP 重新導向它會傳回原始 HTTP 回應預設值為 true 。 |
muteHttpExceptions | Boolean | 如果 true 擷取作業未擲回
例外狀況,並改為傳回 HTTPResponse 。預設值為 false 。 |
escaping | Boolean | 如果網址中的 false 保留字元不是
逸出。預設值為 true 。 |
回攻員
Object
:欄位名稱與值的對應。對應至少包含下列索引鍵:url
、
method
、contentType
、payload
和headers
。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/script.external_request