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.
const 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.
const response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const options = {
  method: 'post',
  payload: formData,
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
const data = {
  name: 'Bob Smith',
  age: 35,
  pets: ['fido', 'fluffy'],
};
const 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) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ 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

fetchAll(requests)

ส่งคําขอหลายรายการเพื่อดึงข้อมูล URL หลายรายการโดยใช้พารามิเตอร์ขั้นสูงที่ไม่บังคับ

ซึ่งใช้ได้กับทั้ง HTTP และ HTTPS

// Make both a POST request with form data, and a GET request.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const request1 = {
  url: 'https://httpbin.org/post',
  method: 'post',
  payload: formData,
};
// A request may also just be a URL.
const 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) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ 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.
const response = UrlFetchApp.getRequest('http://www.google.com/');
for (const 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) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ 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