Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie Ressourcen im Web verwalten müssen, verwenden Sie die folgenden Methoden von UrlFetchApp.
Einfache GET-Anforderung
Verwenden fetch(url) Sie es, wenn Sie nur eine Webressource benötigen.
var response = UrlFetchApp.fetch('https://www.contoso.com');
Die fetch(url) Methode gibt ein HTTResponse-Objekt zurück, das über die Methoden zum Lesen der Antwort verfügt. Verwenden Sie die getContentText Methode zum Lesen einer Textantwort und getContent zum Lesen einer binären Antwort.
Wenn der Antworttext ein JSON-Objekt enthält, verwenden Sie getContentText zum Abrufen des JSON-Objekts. Um auf die einzelnen Felder im JSON-Objekt zuzugreifen, verwenden Sie die JSON.parse() Methode, um die Antwort zu analysieren.
var stock = JSON.parse(response.getContentText());
Logger.log(`stock symbol: ${stock["symbol"]}`);
Logger.log(`company: ${stock["companyName"]}`);
Logger.log(`close price: ${stock["close"]}`);
Umgang mit HTTP-Fehlern
Wenn die Anforderung fehlschlägt (z. B. mit "400 Bad request"), beendet der Dienst die Verarbeitung Ihres Skripts und schreibt eine Fehlermeldung in das Protokoll. Die Meldung enthält den HTTP-Statuscode der Anforderung, aber nicht die Fehlermeldung, die sich möglicherweise im Text der Antwort befindet.
Wenn Sie den Antworttext abrufen müssen, rufen Sie stattdessen die fetch(url, params) Methode auf, und legen Sie den Parameter muteHttpExceptions auf true fest. Wenn Sie muteHttpExceptions auf true festlegen, wird die Kontrolle immer an Ihr Skript zurückgegeben. Anschließend müssen Sie die getResponseCode() Methode aufrufen, um den Erfolg oder Misserfolg der Anforderung zu ermitteln und entsprechend zu handeln.
var response = UrlFetchApp.fetch('https://contoso.com', { muteHttpExceptions: true });
if (200 == response.getResponseCode())
{
Logger.log('HTTP request succeeded');
}
else
{
Logger.log('HTTP request failed');
}
Hinzufügen, Aktualisieren oder Löschen einer Webressource
Wenn Sie eine Webressource hinzufügen, aktualisieren oder löschen müssen, verwenden Sie die fetch(url, params)- Methode. Bei dieser Methode können Sie das zu verwendende HTTP-Verb, den Content-Type-Header, alle anderen Header, die Ihre Anforderung benötigt, und die Nutzlast der Anforderung angeben. Ausführliche Informationen zu diesen Parametern finden Sie unter dem Objekt UrlFetchParams .
Im folgenden Beispiel wird eine Ressource abgerufen, die ein OAuth-Zugriffstoken erfordert. Da GET das HTTP-Standardverb der Fetch-Methode ist, müssen Sie nur den headers Parameter angeben.
var token = "<the oauth token goes here>";
var response = UrlFetchApp.fetch('https://contoso.com', { headers: { Authorization: `Bearer ${token}` } });
var jsonObject = JSON.parse(response.getContentText());
In diesem Beispiel wird eine POST-Anforderung mit einer JSON-Nutzlast gesendet. Da es sich bei der Nutzlast um ein JSON-Objekt handelt, legt das Beispiel den contentType Parameter auf application/json fest.
var myData = {
'id' : '123abc',
'name' : 'leg',
'color' : 'red'
};
var options = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(myData)
};
var response = UrlFetchApp.fetch('https://contoso.com', options);
var jsonObject = JSON.parse(response.getContentText());
Verwenden von UrlFetchApp zum Abrufen einer Datendatei oder CSV-Datei von OneDrive.
Verwenden Sie Microsoft Graph, um eine Datei von OneDrive (https://onedrive.live.com) abzurufen. Für den Zugriff auf eine OneDrive-Datei ist ein OAuth-Zugriffstoken erforderlich. Und um ein Zugriffstoken zu erhalten, ist die Zustimmung des Benutzers erforderlich, es sei denn, Sie verfügen über ein Aktualisierungstoken. Da Scripts jedoch keine Benutzeroberflächenkomponenten unterstützt, müssen Sie die Zustimmung auf andere Weise einholen. Wenn Sie noch keine andere Möglichkeit zum Abrufen eines Aktualisierungstokens haben, finden Sie hier ein PowerShell-Skript, das Sie ausführen können, um die Zustimmung und das Aktualisierungstoken zu erhalten.
$clientId = "your application ID goes here"
Start-Process "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=$clientId&scope=files.read offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf"
$code = Read-Host "Please enter the code"
$response = Invoke-WebRequest https://login.microsoftonline.com/common/oauth2/v2.0/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&redirect_uri=https://login.live.com/oauth20_desktop.srf&code=$code&grant_type=authorization_code"
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token
Bevor Sie das PowerShell-Skript ausführen können, müssen Sie die folgenden Schritte ausführen, um eine Client-ID zu erhalten.
- Wechseln Sie zu https://apps.dev.microsoft.com und klicken Sie auf App hinzufügen.
- Geben Sie einen App-Namen wie "Skriptclient" ein. (Aktivieren Sie nicht die Option "Geführte Einrichtung".)
- Klicken Sie auf Erstellen und notieren Sie sich Ihre Anwendungs-ID (Client-ID).
- Klicken Sie auf Plattform hinzufügen und dann auf Native Anwendung.
- Klicken Sie unter "Delegierte Berechtigungen für Microsoft Graph" auf "Hinzufügen", und wählen Sie "Files" aus. Lesen und offline_access.
- Klicken Sie auf Speichern.
Öffnen Sie Notepad oder Ihren bevorzugten Editor, und kopieren Sie das PowerShell-Skript in den Editor. Auf die Anwendungs-ID festgelegt $clientID , die Sie beim Registrieren Ihrer App erhalten haben.
$clientId = "abc123-4d9e-44f1-837d-a7244af50027"
Speichern Sie die Datei, und benennen Sie sie GetTokens.ps1 (Sie können sie beliebig benennen, aber die Erweiterung muss .ps1 sein).
Öffnen Sie nun ein Konsolenfenster. Geben Sie zum Öffnen eines Konsolenfensters unter Microsoft Windows den folgenden Windows-Ausführungsbefehl ein (<Windows-Taste> + R):
cmd.exe
Navigieren Sie an der Eingabeaufforderung zu dem Ordner, in dem Sie GetTokens.ps1 gespeichert haben. Geben Sie dann den folgenden Befehl ein.
powershell.exe -File .\GetTokens.ps1
Wenn ein Fehler in der Ausführungsrichtlinie auftritt, müssen Sie Ihre Ausführungsrichtlinie ändern. Informationen zu Optionen für Ausführungsrichtlinien finden Sie unter Informationen zu Ausführungsrichtlinien. Geben Sie den folgenden Befehl ein, um die Ausführungsrichtlinie für eine Sitzung zu ändern:
powershell.exe -ExecutionPolicy Bypass -File .\GetTokens.ps1
Wenn das PowerShell-Skript erfolgreich ausgeführt wird, startet es eine Browsersitzung, in der Sie Ihre Anmeldeinformationen für das Microsoft-Konto (MSA) eingeben (die Anmeldeinformationen müssen Zugriff auf Ihre OneDrive-Dateien haben). Nach der Zustimmung enthält die Adressleiste des Browsers den Grant-Code (siehe ?code={copy this code}).
https://login.live.com/oauth20_desktop.srf?code=M7ab570e5-a1c0-32e5-a946-e4490c822954&lc=1033
Kopieren Sie den Grant-Code (M7ab570e5-a1c0-32e5-a946-e4490c822954), und geben Sie ihn im Konsolenfenster an der Eingabeaufforderung ein. Das PowerShell-Skript gibt dann ein Aktualisierungstoken zurück. Verwenden Sie das Aktualisierungstoken in Ihrem Skript, um das Zugriffstoken abzurufen. Sie sollten das Aktualisierungstoken wie ein Kennwort behandeln. Wenn jemand sie in die Hände bekommt, hat er Zugriff auf Ihre OneDrive-Daten.
Das Aktualisierungstoken ist langlebig, kann jedoch ungültig werden. Wenn ein invalid_grant Fehler angezeigt wird, ist Ihr Aktualisierungstoken nicht mehr gültig, und Sie müssen das PowerShell-Skript erneut ausführen, um die Zustimmung und ein neues Aktualisierungstoken zu erhalten.
Beispiel, in das eine CSV-Datei heruntergeladen wird
Nach dem Abrufen des Aktualisierungstokens zeigt das folgende Beispiel, wie Sie 1) das Aktualisierungstoken verwenden, um ein Zugriffstoken abzurufen, und 2) Microsoft Graph aufrufen, um eine Download-URL abzurufen, die Sie zum Herunterladen der CSV-Datei verwenden. Ersetzen Sie {yourclientid} durch die Anwendungs-ID Ihrer registrierten App, und ersetzen Sie {yourrefreshtoken} durch Ihr Aktualisierungstoken.
function main() {
var clientId = "{yourclientid}";
var refreshToken = "{yourrefreshtoken}";
var options = {
'method' : 'post',
'contentType' : 'application/x-www-form-urlencoded',
'payload' : `client_id=${clientId}&redirect_uri=https://login.live.com/oauth20_desktop.srf&refresh_token=${refreshToken}&grant_type=refresh_token`
};
// Use the refresh token to get the access token.
var response = UrlFetchApp.fetch('https://login.microsoftonline.com/common/oauth2/v2.0/token', options);
var tokens = JSON.parse(response.getContentText());
// Get the contents of the CSV file from OneDrive passing the access token in the Authorization header.
// Replace the path and file name (/me/drive/root/children/bids.csv) with your path and file name.
response = UrlFetchApp.fetch('https://graph.microsoft.com/v1.0/me/drive/root/children/bids.csv/content', { headers: { Authorization: `Bearer ${tokens['access_token']}` } });
// Read and parse the contents of the file. The parseCSV method is a placeholder for
// whichever method you provide to parse the file.
var file = response.getContentText();
var data = parseCSV(file);
}
Analysieren der CSV-Datei
Da es kein integriertes CSV-Analysetool gibt, müssen Sie daher ein eigenes schreiben oder online nach einem suchen. Zum Beispiel fand eine schnelle Online-Suche diesen auf Stack Overflow. Wenn Sie eine online finden, stellen Sie sicher, dass sie keine Nutzungsbeschränkungen aufweist.
Zugriff auf Google-Dienste
Informationen zur Verwendung von UrlFetchApp für den Zugriff auf Google-Dienste finden Sie unter Aufrufen von Google-Diensten.