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());

พารามิเตอร์

ชื่อTypeคำอธิบาย
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);

พารามิเตอร์

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

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

ชื่อTypeคำอธิบาย
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.
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คำอธิบาย
requestsObject[]อาร์เรย์ของ URL หรือออบเจ็กต์ JavaScript ที่ระบุคำขอตามที่กำหนดไว้ด้านล่าง

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

ชื่อTypeคำอธิบาย
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]);
}

พารามิเตอร์

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

รีเทิร์น

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

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

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

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

getRequest(url, params)

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

วิธีนี้ไม่ได้เป็นการออกคำขอจริง

พารามิเตอร์

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

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

ชื่อTypeคำอธิบาย
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

รีเทิร์น

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

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

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

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