ดึงข้อมูลและสื่อสารกับโฮสต์อื่นๆ ผ่านอินเทอร์เน็ต
บริการนี้ช่วยให้สคริปต์สื่อสารกับแอปพลิเคชันอื่นๆ หรือเข้าถึงแหล่งข้อมูลอื่นๆ ในเว็บได้โดยดึงข้อมูล URL สคริปต์สามารถใช้บริการดึงข้อมูล URL เพื่อส่งคำขอ HTTP และ HTTPS และรับการตอบกลับ บริการดึงข้อมูล URL ใช้โครงสร้างพื้นฐานเครือข่ายของ Google เพื่อวัตถุประสงค์ด้านประสิทธิภาพและการปรับขนาด
คำขอที่ส่งโดยใช้บริการนี้มาจากพูลช่วง IP ที่กำหนดไว้ คุณสามารถค้นหารายการที่อยู่ IP ทั้งหมดได้หากต้องการเพิ่มในรายการที่อนุญาตหรืออนุมัติคำขอเหล่านี้
บริการนี้ต้องใช้ขอบเขต https://www.googleapis.com/auth/script.external_request
ในกรณีส่วนใหญ่ Apps Script จะตรวจหาและรวมขอบเขตที่ต้องใช้ในสคริปต์โดยอัตโนมัติ แต่หากคุณกําหนดขอบเขตอย่างชัดเจน คุณต้องเพิ่มขอบเขตนี้ด้วยตนเองเพื่อใช้ Url
ดูเพิ่มเติม
เมธอด
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
fetch(url) | HTTPResponse | ส่งคําขอเพื่อดึงข้อมูล URL |
fetch(url, params) | HTTPResponse | ส่งคําขอดึงข้อมูล URL โดยใช้พารามิเตอร์ขั้นสูงที่ไม่บังคับ |
fetch | HTTPResponse[] | ส่งคําขอหลายรายการเพื่อดึงข้อมูล URL หลายรายการโดยใช้พารามิเตอร์ขั้นสูงที่ไม่บังคับ |
get | Object | แสดงผลคำขอที่สร้างขึ้นหากมีการเรียกใช้การดำเนินการ |
get | 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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
url | String | URL ที่จะดึงข้อมูล 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);
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
url | String | URL ที่จะดึงข้อมูล URL ยาวได้สูงสุด 2,082 อักขระ |
params | Object | ออบเจ็กต์ JavaScript (ไม่บังคับ) ที่ระบุพารามิเตอร์ขั้นสูงตามที่ระบุไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
content | String | ประเภทเนื้อหา (ค่าเริ่มต้นคือ 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | การแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ |
method | String | เมธอด HTTP สำหรับคำขอ: get , delete ,
patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (นั่นคือเนื้อหา POST) สำหรับคำขอ เมธอด HTTP บางรายการ (เช่น GET) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแผนที่ของชื่อช่องแบบฟอร์มกับค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้ |
use | Boolean | เลิกใช้งานแล้ว ซึ่งจะสั่งให้ดึงข้อมูลเพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
validate | Boolean | หากเป็น false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true |
follow | Boolean | หาก false การดึงข้อมูลจะไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะแสดงการตอบกลับ HTTP เดิม ค่าเริ่มต้นคือ true |
mute | Boolean | หาก true การดึงข้อมูลจะไม่แสดงข้อยกเว้นหากรหัสการตอบกลับบ่งบอกถึงความล้มเหลว และแสดงผล HTTPResponse แทน ค่าเริ่มต้นคือ false |
escaping | Boolean | หากมีอักขระที่สงวนไว้ false ตัวใน URL ที่ไม่ได้กำหนดเป็นอักขระหลีก ค่าเริ่มต้นคือ true |
รีเทิร์น
HTTPResponse
— ข้อมูลการตอบกลับ HTTP
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request
fetch All(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]);
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
requests | Object[] | อาร์เรย์ของ URL หรือออบเจ็กต์ JavaScript ที่ระบุคําขอตามที่กําหนดไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
url | String | URL ที่จะดึงข้อมูล URL ยาวได้สูงสุด 2,082 อักขระ |
content | String | ประเภทเนื้อหา (ค่าเริ่มต้นคือ 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | การแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ |
method | String | เมธอด HTTP สำหรับคำขอ: get , delete ,
patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (นั่นคือเนื้อหา POST) สำหรับคำขอ เมธอด HTTP บางรายการ (เช่น GET) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแผนที่ของชื่อช่องแบบฟอร์มกับค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้ |
use | Boolean | เลิกใช้งานแล้ว ซึ่งจะสั่งให้ดึงข้อมูลเพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
validate | Boolean | หากเป็น false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true |
follow | Boolean | หาก false การดึงข้อมูลจะไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะแสดงการตอบกลับ HTTP เดิม ค่าเริ่มต้นคือ true |
mute | Boolean | หากเป็น true การดึงข้อมูลจะไม่แสดงข้อยกเว้นหากโค้ดตอบกลับระบุว่าไม่สําเร็จ และจะแสดง HTTPResponse แทน ค่าเริ่มต้นคือ false |
escaping | Boolean | หากเป็น false ระบบจะไม่กำหนดอักขระที่สงวนใน URL เป็นอักขระหลีก ค่าเริ่มต้นคือ true |
รีเทิร์น
HTTPResponse[]
— อาร์เรย์ของข้อมูลการตอบกลับ HTTP จากคําขออินพุตแต่ละรายการ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request
get Request(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]}`); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
url | String | URL ที่จะค้นหา URL ยาวได้สูงสุด 2,082 อักขระ |
รีเทิร์น
Object
— การแมปชื่อฟิลด์กับค่า แผนที่มีคีย์ต่อไปนี้เป็นอย่างน้อย url
,
method
, content
, payload
และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request
get Request(url, params)
แสดงผลคําขอที่สร้างขึ้นหากมีการเรียกใช้การดำเนินการ
วิธีการนี้ไม่ได้ส่งคําขอ
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
url | String | URL ที่จะค้นหา URL ยาวได้สูงสุด 2,082 อักขระ |
params | Object | ออบเจ็กต์ JavaScript ที่ไม่บังคับซึ่งระบุพารามิเตอร์ขั้นสูงตามที่ระบุไว้ด้านล่าง |
พารามิเตอร์ขั้นสูง
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
content | String | ประเภทเนื้อหา (ค่าเริ่มต้นคือ 'application/x-www-form-urlencoded') อีกตัวอย่างหนึ่งของประเภทเนื้อหาคือ "application/xml; charset=utf-8" |
headers | Object | การแมปคีย์/ค่า JavaScript ของส่วนหัว HTTP สําหรับคําขอ |
method | String | เมธอด HTTP สำหรับคำขอ: get , delete ,
patch , post หรือ put ค่าเริ่มต้นคือ get |
payload | String | เพย์โหลด (นั่นคือเนื้อหา POST) สำหรับคำขอ เมธอด HTTP บางรายการ (เช่น GET) ไม่รับเพย์โหลด โดยอาจเป็นสตริง อาร์เรย์ไบต์ บล็อก หรือออบเจ็กต์ JavaScript ระบบจะตีความออบเจ็กต์ JavaScript เป็นแผนที่ของชื่อช่องแบบฟอร์มกับค่า ซึ่งค่าอาจเป็นสตริงหรือ Blob ก็ได้ |
use | Boolean | เลิกใช้งานแล้ว ซึ่งจะสั่งให้ดึงข้อมูลเพื่อแก้ไข URL ที่ระบุภายในอินทราเน็ตที่ลิงก์กับโดเมนของคุณผ่าน SDC (เลิกใช้งานแล้ว) |
validate | Boolean | หากเป็น false การดึงข้อมูลจะไม่สนใจใบรับรองที่ไม่ถูกต้องสําหรับคําขอ HTTPS ค่าเริ่มต้นคือ true |
follow | Boolean | หาก false การดึงข้อมูลจะไม่ติดตามการเปลี่ยนเส้นทาง HTTP โดยอัตโนมัติ ระบบจะแสดงการตอบกลับ HTTP เดิม ค่าเริ่มต้นคือ true |
mute | Boolean | หาก true การดึงข้อมูลจะไม่แสดงข้อยกเว้นหากรหัสการตอบกลับบ่งบอกถึงความล้มเหลว และแสดงผล HTTPResponse แทน ค่าเริ่มต้นคือ false |
escaping | Boolean | หากไม่ได้กำหนดอักขระที่สงวน false ใน URL เป็นอักขระหลีก ค่าเริ่มต้นคือ true |
รีเทิร์น
Object
— การแมปชื่อฟิลด์กับค่า แผนที่มีคีย์ต่อไปนี้เป็นอย่างน้อย url
,
method
, content
, payload
และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request