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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ 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

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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ 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.
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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ 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