ดึงข้อมูลทรัพยากรและสื่อสารกับโฮสต์อื่นๆ ผ่านอินเทอร์เน็ต
บริการนี้ช่วยให้สคริปต์สื่อสารกับแอปพลิเคชันอื่นๆ หรือเข้าถึงทรัพยากรอื่นๆ บนเว็บได้โดยการเรียก 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 โดยใช้พารามิเตอร์ขั้นสูงที่ไม่บังคับ |
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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ Blob หรือออบเจ็กต์ 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
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]);
พารามิเตอร์
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ Blob หรือออบเจ็กต์ 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
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]}`); }
พารามิเตอร์
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
url | String | URL ที่จะค้นหา URL มีความยาวได้สูงสุด 2,082 อักขระ |
รีเทิร์น
Object — แมปชื่อฟิลด์กับค่า แผนที่มีคีย์ต่อไปนี้อย่างน้อย url,
method, contentType, payload และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request
getRequest(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) ไม่ยอมรับเพย์โหลด ซึ่งอาจเป็นสตริง อาร์เรย์ไบต์ Blob หรือออบเจ็กต์ 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, contentType, payload และ headers
การให้สิทธิ์
สคริปต์ที่ใช้วิธีนี้ต้องมีการให้สิทธิ์ที่มีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.external_request