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 จะไม่ 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]);
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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 ไม่ใช่ Escape โดยมีค่าเริ่มต้นเป็น true

รีเทิร์น

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

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

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

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