Class UrlFetchApp

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
UrlFetchApp

ดึงข้อมูลและสื่อสารกับโฮสต์อื่นๆ ทางอินเทอร์เน็ต

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

พารามิเตอร์

ชื่อประเภทคำอธิบาย
urlStringURL ที่จะดึงข้อมูล 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);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
urlStringURL ที่จะดึงข้อมูล URL มีอักขระได้สูงสุด 2,082 ตัว
paramsObjectออบเจ็กต์ JavaScript ที่ไม่บังคับซึ่งระบุพารามิเตอร์ขั้นสูงตามที่กําหนดไว้ด้านล่าง

พารามิเตอร์ขั้นสูง

ชื่อประเภทคำอธิบาย
contentTypeStringประเภทเนื้อหา (มีค่าเริ่มต้นเป็น 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ 'application/xml; charset=utf-8'
headersObjectการแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ
methodStringเมธอด HTTP สําหรับคําขอ: get, delete, patch, post หรือ put ค่าเริ่มต้นคือ get
payloadStringเพย์โหลด (กล่าวคือเนื้อหา POST) สําหรับคําขอ เมธอด HTTP บางวิธี (เช่น GET) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ BLOB หรือออบเจ็กต์ JavaScript ก็ได้ ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในฟอร์มเป็นค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้
useIntranetBooleanเลิกใช้งานแล้ว การดําเนินการนี้จะสั่งให้ดึงข้อมูล URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนผ่าน (เลิกใช้งานแล้ว)SDC
validateHttpsCertificatesBooleanหาก false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true
followRedirectsBooleanหาก false การดึงข้อมูลไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะดึงข้อมูลการตอบกลับ HTTP ดั้งเดิม ค่าเริ่มต้นคือ true
muteHttpExceptionsBooleanหาก true ดึงข้อมูลไม่ได้ยกเว้นข้อยกเว้นหากโค้ดตอบกลับระบุว่าล้มเหลวและส่ง HTTPResponse กลับมา ค่าเริ่มต้นคือ false
escapingBooleanหากอักขระที่ใช้ในการจอง 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]);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
requestsObject[]อาร์เรย์ของ URL หรือออบเจ็กต์ JavaScript ที่ระบุคําขอตามที่กําหนดไว้ด้านล่าง

พารามิเตอร์ขั้นสูง

ชื่อประเภทคำอธิบาย
urlStringURL ที่จะดึงข้อมูล URL มีอักขระได้สูงสุด 2,082 ตัว
contentTypeStringประเภทเนื้อหา (มีค่าเริ่มต้นเป็น 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ 'application/xml; charset=utf-8'
headersObjectการแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ
methodStringเมธอด HTTP สําหรับคําขอ: get, delete, patch, post หรือ put ค่าเริ่มต้นคือ get
payloadStringเพย์โหลด (กล่าวคือเนื้อหา POST) สําหรับคําขอ เมธอด HTTP บางวิธี (เช่น GET) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ BLOB หรือออบเจ็กต์ JavaScript ก็ได้ ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในฟอร์มเป็นค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้
useIntranetBooleanเลิกใช้งานแล้ว การดําเนินการนี้จะสั่งให้ดึงข้อมูล URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนผ่าน (เลิกใช้งานแล้ว)SDC
validateHttpsCertificatesBooleanหาก false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true
followRedirectsBooleanหาก false การดึงข้อมูลไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะดึงข้อมูลการตอบกลับ HTTP ดั้งเดิม ค่าเริ่มต้นคือ true
muteHttpExceptionsBooleanหากเป็น true การดึงข้อมูลจะไม่สร้างข้อยกเว้นหากโค้ดตอบกลับระบุว่าการทํางานล้มเหลว และจะแสดง HTTPResponse แทน ค่าเริ่มต้นคือ false
escapingBooleanหากเป็น 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]);
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
urlStringURL ที่จะค้นหา URL มีอักขระได้สูงสุด 2,082 ตัว

ไปกลับ

Object — การแมปชื่อช่องกับค่า แผนที่ประกอบด้วยคีย์ต่อไปนี้: url, method, contentType, payload และ headers

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องได้รับสิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/script.external_request

getRequest(url, params)

แสดงผลคําขอที่สร้างขึ้นหากมีการดําเนินการ

วิธีการนี้ไม่ได้ส่งคําขอจริงๆ

พารามิเตอร์

ชื่อประเภทคำอธิบาย
urlStringURL ที่จะค้นหา URL มีอักขระได้สูงสุด 2,082 ตัว
paramsObjectออบเจ็กต์ JavaScript ที่ไม่บังคับซึ่งระบุพารามิเตอร์ขั้นสูงตามที่กําหนดไว้ด้านล่าง

พารามิเตอร์ขั้นสูง

ชื่อประเภทคำอธิบาย
contentTypeStringประเภทเนื้อหา (มีค่าเริ่มต้นเป็น 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ 'application/xml; charset=utf-8'
headersObjectการแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ
methodStringเมธอด HTTP สําหรับคําขอ: get, delete, patch, post หรือ put ค่าเริ่มต้นคือ get
payloadStringเพย์โหลด (กล่าวคือเนื้อหา POST) สําหรับคําขอ เมธอด HTTP บางวิธี (เช่น GET) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ BLOB หรือออบเจ็กต์ JavaScript ก็ได้ ระบบจะตีความออบเจ็กต์ JavaScript เป็นแมปของชื่อช่องในฟอร์มเป็นค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้
useIntranetBooleanเลิกใช้งานแล้ว การดําเนินการนี้จะสั่งให้ดึงข้อมูล URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนผ่าน (เลิกใช้งานแล้ว)SDC
validateHttpsCertificatesBooleanหาก false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true
followRedirectsBooleanหาก false การดึงข้อมูลไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะดึงข้อมูลการตอบกลับ HTTP ดั้งเดิม ค่าเริ่มต้นคือ true
muteHttpExceptionsBooleanหาก true ดึงข้อมูลไม่ได้ยกเว้นข้อยกเว้นหากโค้ดตอบกลับระบุว่าล้มเหลวและส่ง HTTPResponse กลับมา ค่าเริ่มต้นคือ false
escapingBooleanหากไม่ใช้อักขระ "false" ที่สงวนไว้ใน URL คุณจะกําหนดเป็นอักขระหลีกไม่ได้ ค่าเริ่มต้นคือ true

ไปกลับ

Object — การแมปชื่อช่องกับค่า แผนที่ประกอบด้วยคีย์ต่อไปนี้: url, method, contentType, payload และ headers

การให้สิทธิ์

สคริปต์ที่ใช้วิธีนี้ต้องได้รับสิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/script.external_request