Class UrlFetchApp

UrlFetchApp

Ressourcen abrufen und über das Internet mit anderen Hosts kommunizieren.

Mit diesem Dienst können Skripts mit anderen Anwendungen kommunizieren oder auf andere Ressourcen im Web zugreifen, indem sie URLs abrufen. Ein Skript kann mithilfe des URL-Abrufdienstes HTTP- und HTTPS-Anfragen senden und Antworten empfangen. Der URL Fetch-Dienst nutzt die Netzwerkinfrastruktur von Google, um die Effizienz und Skalierbarkeit zu verbessern.

Anfragen, die über diesen Dienst gestellt werden, stammen aus einem bestimmten Pool von IP-Bereichen. Eine vollständige Liste der IP-Adressen finden Sie, wenn Sie diese Anfragen auf die Zulassungsliste setzen oder genehmigen müssen.

Für diesen Dienst ist der Bereich https://www.googleapis.com/auth/script.external_request erforderlich. In den meisten Fällen erkennt Apps Script die für ein Skript erforderlichen Bereiche automatisch und fügt sie hinzu. Wenn Sie jedoch Ihre Bereiche explizit festlegen, müssen Sie diesen Bereich manuell hinzufügen, um UrlFetchApp verwenden zu können.

Weitere Informationen

Methoden

MethodeRückgabetypKurzbeschreibung
fetch(url)HTTPResponseStellt eine Anfrage zum Abrufen einer URL.
fetch(url, params)HTTPResponseStellt eine Anfrage zum Abrufen einer URL mit optionalen erweiterten Parametern.
fetchAll(requests)HTTPResponse[]Es werden mehrere Anfragen gesendet, um mehrere URLs mit optionalen erweiterten Parametern abzurufen.
getRequest(url)ObjectGibt die Anfrage zurück, die gestellt wird, wenn der Vorgang aufgerufen wurde.
getRequest(url, params)ObjectGibt die Anfrage zurück, die gestellt würde, wenn der Vorgang aufgerufen würde.

Detaillierte Dokumentation

fetch(url)

Stellt eine Anfrage zum Abrufen einer URL.

Das funktioniert sowohl über HTTP als auch über 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());

Parameter

NameTypBeschreibung
urlStringDie abzurufende URL. Die URL darf bis zu 2.082 Zeichen enthalten.

Rückflug

HTTPResponse: Die HTTP-Antwortdaten.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

fetch(url, params)

Stellt eine Anfrage zum Abrufen einer URL mit optionalen erweiterten Parametern.

Das funktioniert sowohl über HTTP als auch über 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);

Parameter

NameTypBeschreibung
urlStringDie abzurufende URL. Die URL darf bis zu 2.082 Zeichen enthalten.
paramsObjectDas optionale JavaScript-Objekt, das erweiterte Parameter wie unten definiert angibt.

Erweiterte Parameter

NameTypBeschreibung
contentTypeStringDer Inhaltstyp (standardmäßig „application/x-www-form-urlencoded“). Ein weiteres Beispiel für einen Inhaltstyp ist „application/xml; charset=utf-8“.
headersObjectEine JavaScript-Schlüssel/Wert-Zuordnung von HTTP-Headern für die Anfrage
methodStringDie HTTP-Methode für die Anfrage: get, delete, patch, post oder put. Der Standardwert ist get.
payloadStringdie Nutzlast (d. h. der POST-Text) für die Anfrage. Bestimmte HTTP-Methoden (z. B. GET) akzeptieren keine Nutzlast. Es kann ein String, ein Byte-Array, ein Blob oder ein JavaScript-Objekt sein. Ein JavaScript-Objekt wird als Zuordnung von Formularfeldnamen zu Werten interpretiert, wobei die Werte entweder Strings oder Blobs sein können.
useIntranetBooleanVerworfen. Dadurch wird der Abrufvorgang angewiesen, die angegebene URL im Intranet aufzulösen, das über das (eingestellte) SDC mit Ihrer Domain verknüpft ist.
validateHttpsCertificatesBooleanWenn false, werden bei der Abfrage alle ungültigen Zertifikate für HTTPS-Anfragen ignoriert. Der Standardwert ist true.
followRedirectsBooleanWenn false, werden HTTP-Weiterleitungen beim Abrufen nicht automatisch gefolgt. Stattdessen wird die ursprüngliche HTTP-Antwort zurückgegeben. Der Standardwert ist true.
muteHttpExceptionsBooleanWenn true beim Abrufen keine Ausnahme ausgelöst wird, wenn der Antwortcode einen Fehler angibt, wird stattdessen HTTPResponse zurückgegeben. Der Standardwert ist false.
escapingBooleanWenn false reservierte Zeichen in der URL nicht maskiert werden. Der Standardwert ist true.

Rückflug

HTTPResponse: Die HTTP-Antwortdaten.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

fetchAll(requests)

Es werden mehrere Anfragen gesendet, um mehrere URLs mit optionalen erweiterten Parametern abzurufen.

Das funktioniert sowohl über HTTP als auch über 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]);

Parameter

NameTypBeschreibung
requestsObject[]Ein Array mit URLs oder JavaScript-Objekten, in denen Anfragen wie unten definiert angegeben werden.

Erweiterte Parameter

NameTypBeschreibung
urlStringDie abzurufende URL. Die URL darf bis zu 2.082 Zeichen enthalten.
contentTypeStringDer Inhaltstyp (standardmäßig „application/x-www-form-urlencoded“). Ein weiteres Beispiel für einen Inhaltstyp ist „application/xml; charset=utf-8“.
headersObjectEine JavaScript-Schlüssel/Wert-Zuordnung von HTTP-Headern für die Anfrage
methodStringDie HTTP-Methode für die Anfrage: get, delete, patch, post oder put. Der Standardwert ist get.
payloadStringdie Nutzlast (d. h. der POST-Text) für die Anfrage. Bestimmte HTTP-Methoden (z. B. GET) akzeptieren keine Nutzlast. Es kann ein String, ein Byte-Array, ein Blob oder ein JavaScript-Objekt sein. Ein JavaScript-Objekt wird als Zuordnung von Formularfeldnamen zu Werten interpretiert, wobei die Werte entweder Strings oder Blobs sein können.
useIntranetBooleanVerworfen. Dadurch wird der Abrufvorgang angewiesen, die angegebene URL im Intranet aufzulösen, das über das (eingestellte) SDC mit Ihrer Domain verknüpft ist.
validateHttpsCertificatesBooleanWenn false, werden bei der Abfrage alle ungültigen Zertifikate für HTTPS-Anfragen ignoriert. Der Standardwert ist true.
followRedirectsBooleanWenn false, werden HTTP-Weiterleitungen beim Abrufen nicht automatisch gefolgt. Stattdessen wird die ursprüngliche HTTP-Antwort zurückgegeben. Der Standardwert ist true.
muteHttpExceptionsBooleanWenn true, wird beim Abrufen keine Ausnahme ausgelöst, wenn der Antwortcode einen Fehler angibt. Stattdessen wird HTTPResponse zurückgegeben. Der Standardwert ist false.
escapingBooleanWenn false, werden reservierte Zeichen in der URL nicht maskiert. Der Standardwert ist true.

Rückflug

HTTPResponse[]: Ein Array mit HTTP-Antwortdaten aus jeder Eingabeanfrage.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getRequest(url)

Gibt die Anfrage zurück, die gestellt wird, wenn der Vorgang aufgerufen wurde.

Mit dieser Methode wird die Anfrage nicht tatsächlich gesendet.

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

Parameter

NameTypBeschreibung
urlStringDie URL, die nachgeschlagen werden soll. Die URL darf bis zu 2.082 Zeichen enthalten.

Rückflug

Object: Eine Zuordnung von Feldname zu Wert. Die Karte hat mindestens die folgenden Schlüssel: url, method, contentType, payload und headers.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getRequest(url, params)

Gibt die Anfrage zurück, die gestellt würde, wenn der Vorgang aufgerufen würde.

Mit dieser Methode wird die Anfrage nicht tatsächlich gesendet.

Parameter

NameTypBeschreibung
urlStringDie URL, die nachgeschlagen werden soll. Die URL darf bis zu 2.082 Zeichen enthalten.
paramsObjectEin optionales JavaScript-Objekt, das erweiterte Parameter wie unten definiert angibt.

Erweiterte Parameter

NameTypBeschreibung
contentTypeStringDer Inhaltstyp (standardmäßig „application/x-www-form-urlencoded“). Ein weiteres Beispiel für einen Inhaltstyp ist „application/xml; charset=utf-8“.
headersObjectEine JavaScript-Schlüssel/Wert-Zuordnung von HTTP-Headern für die Anfrage
methodStringDie HTTP-Methode für die Anfrage: get, delete, patch, post oder put. Der Standardwert ist get.
payloadStringdie Nutzlast (d. h. der POST-Text) für die Anfrage. Bestimmte HTTP-Methoden (z. B. GET) akzeptieren keine Nutzlast. Es kann ein String, ein Byte-Array, ein Blob oder ein JavaScript-Objekt sein. Ein JavaScript-Objekt wird als Zuordnung von Formularfeldnamen zu Werten interpretiert, wobei die Werte entweder Strings oder Blobs sein können.
useIntranetBooleanVerworfen. Dadurch wird der Abrufvorgang angewiesen, die angegebene URL im Intranet aufzulösen, das über das (eingestellte) SDC mit Ihrer Domain verknüpft ist.
validateHttpsCertificatesBooleanWenn false, werden bei der Abfrage alle ungültigen Zertifikate für HTTPS-Anfragen ignoriert. Der Standardwert ist true.
followRedirectsBooleanWenn false, werden HTTP-Weiterleitungen beim Abrufen nicht automatisch gefolgt. Stattdessen wird die ursprüngliche HTTP-Antwort zurückgegeben. Der Standardwert ist true.
muteHttpExceptionsBooleanWenn true beim Abrufen keine Ausnahme ausgelöst wird, wenn der Antwortcode einen Fehler angibt, wird stattdessen HTTPResponse zurückgegeben. Der Standardwert ist false.
escapingBooleanWenn false reservierte Zeichen in der URL nicht maskiert werden. Der Standardwert ist true.

Rückflug

Object: Eine Zuordnung von Feldname zu Wert. Die Karte hat mindestens die folgenden Schlüssel: url, method, contentType, payload und headers.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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