เรียกทรัพยากรและสื่อสารกับโฮสต์อื่นๆ ผ่านอินเทอร์เน็ต
บริการนี้อนุญาตให้สคริปต์สื่อสารกับแอปพลิเคชันอื่นหรือเข้าถึงทรัพยากรอื่น บนเว็บโดยการดึงข้อมูล 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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
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 | แมปคีย์/ค่า 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 |
รีเทิร์น
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 | แมปคีย์/ค่า 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 |
รีเทิร์น
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 | แมปคีย์/ค่า 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