Class UrlFetchApp

عنوان URLجلبالتطبيق

جلب الموارد والتواصل مع المضيفين الآخرين عبر الإنترنت

تسمح هذه الخدمة للنصوص البرمجية بالتواصل مع التطبيقات الأخرى أو الوصول إلى موارد أخرى على الويب من خلال جلب عناوين URL. ويمكن للنص البرمجي استخدام خدمة "جلب عناوين URL" لإصدار طلبات HTTP وHTTPS وتلقّي الردود. تستخدِم خدمة "جلب عنوان URL" بنية شبكة Google التحتية لأغراض الكفاءة والتوسّع.

تأتي الطلبات المقدَّمة باستخدام هذه الخدمة من مجموعة محدّدة من نطاقات عناوين IP. يمكنك الاطّلاع على القائمة الكاملة لعناوين IP إذا كنت بحاجة إلى إضافة هذه الطلبات إلى القائمة المسموح بها أو الموافقة عليها.

تتطلّب هذه الخدمة نطاق https://www.googleapis.com/auth/script.external_request. في معظم الحالات، ترصد أداة "برمجة تطبيقات Google" النطاقات التي يحتاجها النص البرمجي وتضمّنها تلقائيًا، ولكن إذا كنت تضبط نطاقاتك بشكل صريح، عليك إضافة هذا النطاق يدويًا لاستخدام 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());

المعلَمات

الاسمالنوعالوصف
urlStringعنوان URL المطلوب استرجاعه. يمكن أن يتضمّن عنوان URL ما يصل إلى 2,082 حرفًا.

الإرجاع

HTTPResponse: بيانات استجابة HTTP

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

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

المعلَمات

الاسمالنوعالوصف
urlStringعنوان URL المطلوب استرجاعه. يمكن أن يتضمّن عنوان 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) للطلب. لا تقبل بعض methods HTTP (مثل GET) حمولة. يمكن أن يكون سلسلة أو مصفوفة بايت أو ملفًا بتنسيق blob أو عنصرًا في JavaScript. يتم تفسير عنصر JavaScript على أنّه خريطة لأسماء حقل النموذج إلى القيم، حيث يمكن أن تكون القيم إما سلاسل أو مجموعات بيانات.
useIntranetBooleanتمّ الإيقاف. يوجّه هذا الإجراء عملية الجلب إلى تحليل عنوان URL المحدّد ضمن شبكة الإنترنت الداخلية المرتبطة بنطاقك من خلال SDC (المعروفة باسم SDC المتوقّفة نهائيًا).
validateHttpsCertificatesBooleanإذا كان false يساوي 1، يتجاهل الإجراء جلب أي شهادات غير صالحة لطلبات HTTPS. القيمة التلقائية هي true.
followRedirectsBooleanإذا false لم يتبع الإجراء تلقائيًا عمليات إعادة التوجيه في HTTP، سيعرض استجابة HTTP الأصلية. القيمة التلقائية هي true.
muteHttpExceptionsBooleanإذا كان true، لا يُرسِل الإجراء الذي يتم تنفيذه لطلب البيانات استثناءً إذا كان رمز الاستجابة يشير إلى تعذُّر إكمال العملية، بل يعرض HTTPResponse بدلاً من ذلك. القيمة التلقائية هي false.
escapingBooleanإذا لم يتم false تحويل الأحرف المحجوزة في عنوان URL إلى أحرف عادية القيمة التلقائية هي true.

الإرجاع

HTTPResponse: بيانات استجابة HTTP

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

  • 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 تحدّد الطلبات على النحو الموضّح أدناه

المعلمات المتقدمة

الاسمالنوعالوصف
urlStringعنوان URL المطلوب استرجاعه يمكن أن يتضمّن عنوان 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) للطلب. لا تقبل بعض methods HTTP (مثل GET) حمولة. يمكن أن يكون سلسلة أو مصفوفة بايت أو ملفًا بتنسيق blob أو عنصرًا في JavaScript. يتم تفسير عنصر JavaScript على أنّه خريطة لأسماء حقل النموذج إلى القيم، حيث يمكن أن تكون القيم إما سلاسل أو مجموعات بيانات.
useIntranetBooleanتمّ الإيقاف. يوجّه هذا الإجراء عملية الجلب إلى تحليل عنوان URL المحدّد ضمن شبكة الإنترنت الداخلية المرتبطة بنطاقك من خلال SDC (المنتهية الصلاحية).
validateHttpsCertificatesBooleanإذا كان false يساوي 1، يتجاهل الإجراء جلب أي شهادات غير صالحة لطلبات HTTPS. القيمة التلقائية هي true.
followRedirectsBooleanإذا false لم يتبع الإجراء تلقائيًا عمليات إعادة التوجيه في HTTP، سيعرض استجابة HTTP الأصلية. القيمة التلقائية هي true.
muteHttpExceptionsBooleanإذا كان true، لا يُرسِل الإجراء "جلب" استثناءً إذا كان رمز الاستجابة يشير إلى تعذُّر إكمال العملية، بل يعرض HTTPResponse بدلاً من ذلك. القيمة التلقائية هي false.
escapingBooleanإذا كان false، لا تتم معالجة الأحرف المحجوزة في عنوان URL. القيمة التلقائية هي true.

الإرجاع

HTTPResponse[]: صفيف من بيانات استجابة HTTP من كل طلب إدخال

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

  • 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]}`);
}

المعلَمات

الاسمالنوعالوصف
urlStringعنوان URL المطلوب البحث عنه يمكن أن يتضمّن عنوان URL ما يصل إلى 2,082 حرفًا.

الإرجاع

Object - تعيين اسم الحقل إلى القيمة تحتوي الخريطة على المفاتيح التالية على الأقل: url، method، وcontentType، وpayload، وheaders.

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

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

getRequest(url, params)

تعرِض هذه السمة الطلب الذي تم تقديمه في حال تمّ استدعاء العملية.

لا تُصدر هذه الطريقة الطلب فعليًا.

المعلَمات

الاسمالنوعالوصف
urlStringعنوان URL المطلوب البحث عنه يمكن أن يتضمّن عنوان 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) للطلب. لا تقبل بعض methods HTTP (مثل GET) حمولة. يمكن أن يكون سلسلة أو مصفوفة بايت أو ملفًا بتنسيق blob أو عنصرًا في JavaScript. يتم تفسير عنصر JavaScript على أنّه خريطة لأسماء حقل النموذج إلى القيم، حيث يمكن أن تكون القيم إما سلاسل أو مجموعات بيانات.
useIntranetBooleanتمّ الإيقاف. يوجّه هذا الإجراء عملية الجلب إلى تحليل عنوان URL المحدّد ضمن شبكة الإنترنت الداخلية المرتبطة بنطاقك من خلال SDC (المنتهية الصلاحية).
validateHttpsCertificatesBooleanإذا كان false يساوي 1، يتجاهل الإجراء جلب أي شهادات غير صالحة لطلبات HTTPS. القيمة التلقائية هي true.
followRedirectsBooleanإذا false لم يتبع الإجراء تلقائيًا عمليات إعادة التوجيه في HTTP، سيعرض استجابة HTTP الأصلية. القيمة التلقائية هي true.
muteHttpExceptionsBooleanإذا كان true، لا يُرسِل الإجراء الذي يتم تنفيذه لطلب البيانات استثناءً إذا كان رمز الاستجابة يشير إلى تعذُّر إكمال العملية، بل يعرض HTTPResponse بدلاً من ذلك. القيمة التلقائية هي false.
escapingBooleanإذا لم يتم false إلغاء أحرف محجوزة في عنوان URL القيمة التلقائية هي true.

الإرجاع

Object - تعيين اسم الحقل إلى القيمة تحتوي الخريطة على المفاتيح التالية على الأقل: url، method، وcontentType، وpayload، وheaders.

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

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