ดึงทรัพยากรและสื่อสารกับโฮสต์อื่นผ่านอินเทอร์เน็ต
บริการนี้ช่วยให้สคริปต์สื่อสารกับแอปพลิเคชันอื่นหรือเข้าถึงทรัพยากรอื่นๆ บนเว็บได้โดยการดึงข้อมูล URL สคริปต์สามารถใช้บริการดึงข้อมูล URL เพื่อส่งคำขอ HTTP และ HTTPS และรับคำตอบ บริการดึงข้อมูล URL ใช้โครงสร้างพื้นฐานเครือข่ายของ Google เพื่อวัตถุประสงค์ด้านประสิทธิภาพและการปรับขนาด
คำขอที่เกิดขึ้นจากการใช้บริการนี้มาจากกลุ่มของช่วง IP ที่กำหนดไว้ คุณค้นหารายการที่อยู่ IP ทั้งหมดได้หากต้องการอนุญาตหรืออนุมัติคำขอเหล่านี้
บริการนี้ต้องใช้ขอบเขต https://www.googleapis.com/auth/script.external_request
ในกรณีส่วนใหญ่ Apps Script จะตรวจหาและรวมขอบเขตที่สคริปต์ต้องการใช้โดยอัตโนมัติ แต่หากตั้งค่าขอบเขตอย่างชัดแจ้ง คุณต้องเพิ่มขอบเขตนี้ด้วยตนเองเพื่อใช้ UrlFetchApp
ดูเพิ่มเติม
วิธีการ
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
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());
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
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);
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
url | String | URL ที่จะดึงข้อมูล URL มีอักขระได้สูงสุด 2,082 ตัว |
params | Object | ออบเจ็กต์ JavaScript ที่ไม่บังคับซึ่งระบุพารามิเตอร์ขั้นสูงตามที่ระบุไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | Type | คำอธิบาย |
---|---|---|
contentType | String | ประเภทเนื้อหา (มีค่าเริ่มต้นเป็น "application/x-www-form-urlencoded") อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | แมปคีย์/ค่าของ JavaScript ของส่วนหัว HTTP สำหรับคำขอ |
method | String | เมธอด HTTP สำหรับคำขอ ได้แก่ get , delete , patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (เนื้อหา POST) ของคำขอ เมธอด HTTP บางเมธอด (เช่น GET) ไม่ยอมรับเพย์โหลด โดยอาจเป็นสตริง, ไบต์อาร์เรย์, BLOB หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในแบบฟอร์มกับค่า โดยค่าอาจเป็นสตริงหรือ BLOB ก็ได้ |
useIntranet | Boolean | เลิกใช้งานแล้ว การดำเนินการนี้จะสั่งให้ "ดึงข้อมูล" เพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
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
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]);
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
requests | Object[] | อาร์เรย์ของ URL หรือออบเจ็กต์ JavaScript ที่ระบุคำขอตามที่กำหนดไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | Type | คำอธิบาย |
---|---|---|
url | String | URL ที่จะดึงข้อมูล URL มีอักขระได้สูงสุด 2,082 ตัว |
contentType | String | ประเภทเนื้อหา (มีค่าเริ่มต้นเป็น "application/x-www-form-urlencoded") อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | แมปคีย์/ค่าของ JavaScript ของส่วนหัว HTTP สำหรับคำขอ |
method | String | เมธอด HTTP สำหรับคำขอ ได้แก่ get , delete , patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (เนื้อหา POST) ของคำขอ เมธอด HTTP บางเมธอด (เช่น GET) ไม่ยอมรับเพย์โหลด โดยอาจเป็นสตริง, ไบต์อาร์เรย์, BLOB หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในแบบฟอร์มกับค่า โดยค่าอาจเป็นสตริงหรือ BLOB ก็ได้ |
useIntranet | Boolean | เลิกใช้งานแล้ว การดำเนินการนี้จะสั่งให้ "ดึงข้อมูล" เพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
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]); }
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
url | String | URL ที่จะค้นหา URL มีอักขระได้สูงสุด 2,082 ตัว |
รีเทิร์น
Object
— แมปของชื่อช่องกับค่า แผนที่มีคีย์ต่อไปนี้อย่างน้อย url
, method
, contentType
, payload
และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request
getRequest(url, params)
แสดงผลคำขอที่เกิดขึ้นหากมีการเรียกใช้การดำเนินการ
วิธีนี้ไม่ได้เป็นการออกคำขอจริง
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
url | String | URL ที่จะค้นหา URL มีอักขระได้สูงสุด 2,082 ตัว |
params | Object | ออบเจ็กต์ JavaScript ที่ไม่บังคับซึ่งระบุพารามิเตอร์ขั้นสูงตามที่ระบุไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | Type | คำอธิบาย |
---|---|---|
contentType | String | ประเภทเนื้อหา (มีค่าเริ่มต้นเป็น "application/x-www-form-urlencoded") อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | แมปคีย์/ค่าของ JavaScript ของส่วนหัว HTTP สำหรับคำขอ |
method | String | เมธอด HTTP สำหรับคำขอ ได้แก่ get , delete , patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (เนื้อหา POST) ของคำขอ เมธอด HTTP บางเมธอด (เช่น GET) ไม่ยอมรับเพย์โหลด โดยอาจเป็นสตริง, ไบต์อาร์เรย์, BLOB หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในแบบฟอร์มกับค่า โดยค่าอาจเป็นสตริงหรือ BLOB ก็ได้ |
useIntranet | Boolean | เลิกใช้งานแล้ว การดำเนินการนี้จะสั่งให้ "ดึงข้อมูล" เพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
validateHttpsCertificates | Boolean | หาก false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสำหรับคำขอ HTTPS ค่าเริ่มต้นคือ true |
followRedirects | Boolean | หาก false การดึงข้อมูลไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะแสดงผลการตอบกลับ HTTP เดิม ค่าเริ่มต้นคือ true |
muteHttpExceptions | Boolean | หาก true ดึงข้อมูลไม่มีข้อยกเว้นหากโค้ดตอบกลับระบุว่าล้มเหลว แต่แสดงผล HTTPResponse แทน ค่าเริ่มต้นคือ false |
escaping | Boolean | หากอักขระที่สงวนไว้ false ตัวใน URL ไม่มีการ Escape ค่าเริ่มต้นคือ true |
รีเทิร์น
Object
— แมปของชื่อช่องกับค่า แผนที่มีคีย์ต่อไปนี้อย่างน้อย url
, method
, contentType
, payload
และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request