Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se è necessario gestire le risorse sul Web, usare i metodi seguenti di UrlFetchApp.
Richiesta GET semplice
Usale fetch(url) se hai solo bisogno di ottenere una risorsa Web.
var response = UrlFetchApp.fetch('https://www.contoso.com');
Il fetch(url) metodo restituisce un oggetto HTTResponse , che contiene i metodi per leggere la risposta. Usa il getContentText metodo per leggere una risposta testuale e getContent per leggere una risposta binaria.
Se il corpo della risposta contiene un oggetto JSON, usalo getContentText per ottenere l'oggetto JSON. Per accedere ai singoli campi nell'oggetto JSON, usa il JSON.parse() metodo per analizzare la risposta.
var stock = JSON.parse(response.getContentText());
Logger.log(`stock symbol: ${stock["symbol"]}`);
Logger.log(`company: ${stock["companyName"]}`);
Logger.log(`close price: ${stock["close"]}`);
Gestione degli errori HTTP
Se la richiesta ha esito negativo (ad esempio, con 400 richieste non valide), il servizio interrompe l'elaborazione dello script e scrive un messaggio di errore nel log. Il messaggio include il codice di stato HTTP della richiesta, ma non il messaggio di errore che potrebbe essere presente nel corpo della risposta.
Se è necessario ottenere il corpo della risposta, chiamare invece il fetch(url, params) metodo e impostare il parametro muteHttpExceptions su true. L'impostazione di muteHttpExceptions su true restituisce sempre il controllo allo script. Sarà quindi necessario chiamare il getResponseCode() metodo per determinare l'esito positivo o negativo della richiesta e agire di conseguenza.
var response = UrlFetchApp.fetch('https://contoso.com', { muteHttpExceptions: true });
if (200 == response.getResponseCode())
{
Logger.log('HTTP request succeeded');
}
else
{
Logger.log('HTTP request failed');
}
Aggiunta, aggiornamento o eliminazione di una risorsa Web
Se è necessario aggiungere, aggiornare o eliminare una risorsa Web, usare il metodo fetch(url, params). Questo metodo consente di specificare il verbo HTTP da usare, l'intestazione Content-Type, qualsiasi altra intestazione necessaria per la richiesta e il payload della richiesta. Per informazioni dettagliate su questi parametri, vedere l'oggetto UrlFetchParams .
L'esempio seguente ottiene una risorsa che richiede un token di accesso OAuth. Poiché GET è il verbo HTTP predefinito del metodo di recupero, l'unico parametro che è necessario specificare è il headers parametro.
var token = "<the oauth token goes here>";
var response = UrlFetchApp.fetch('https://contoso.com', { headers: { Authorization: `Bearer ${token}` } });
var jsonObject = JSON.parse(response.getContentText());
Questo esempio invia una richiesta POST con un payload JSON. Poiché il payload è un oggetto JSON, nell'esempio contentType il parametro viene impostato su application/json.
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());
Uso di UrlFetchApp per ottenere un file di dati o CSV da OneDrive.
Per ottenere un file da OneDrive (https://onedrive.live.com), usare Microsoft Graph. L'accesso a un file di OneDrive richiede un token di accesso OAuth. Per ottenere un token di accesso è inoltre necessario il consenso dell'utente, a meno che non si disponga di un token di aggiornamento. Tuttavia, poiché Script non supporta i componenti dell'interfaccia utente, dovrai ottenere il consenso in un altro modo. Se non si ha già un altro modo per ottenere un token di aggiornamento, ecco uno script di PowerShell che è possibile eseguire per ottenere il consenso e il token di aggiornamento.
$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
Prima di eseguire lo script di PowerShell, è necessario seguire questa procedura per ottenere un ID client.
- Vai a e fai clic su https://apps.dev.microsoft.comAggiungi un'app.
- Immetti un nome di app, come Client script. Non selezionare la Configurazione guidata.
- Fare clic su Crea e annotare l'ID applicazione (ID client).
- Fare clic su Aggiungi piattaforma e quindi su Applicazione nativa.
- In Autorizzazioni delegate di Microsoft Graph fare clic su Aggiungi e selezionare Files. Leggi e offline_access.
- Fare clic su Salva.
Aprire il Blocco note o l'editor preferito e copiare lo script di PowerShell nell'editor. Impostare $clientID l'ID applicazione ricevuto al momento della registrazione dell'app.
$clientId = "abc123-4d9e-44f1-837d-a7244af50027"
Salvare il file e assegnargli il nome GetTokens.ps1 (si può chiamare come si vuole, ma l'estensione deve essere .ps1).
Ora apri una finestra della console. Per aprire una finestra della console in Microsoft Windows, immetti il comando Esegui di Windows seguente (<pulsante> Windows+R):
cmd.exe
Al prompt dei comandi passare alla cartella in cui è stato salvato GetTokens.ps1. Quindi, immetti il comando seguente.
powershell.exe -File .\GetTokens.ps1
Se ricevi un errore di criteri di esecuzione, dovrai modificare i criteri di esecuzione. Per le opzioni relative ai criteri di esecuzione, vedere Informazioni sui criteri di esecuzione. Per modificare i criteri di esecuzione per una sessione, immetti il comando seguente:
powershell.exe -ExecutionPolicy Bypass -File .\GetTokens.ps1
Quando lo script di PowerShell viene eseguito correttamente, viene avviata una sessione del browser in cui è possibile immettere le credenziali dell'account Microsoft (MSA), ovvero le credenziali devono avere accesso ai file di OneDrive. Dopo aver fornito il consenso, la barra degli indirizzi del browser contiene il codice di concessione (vedere ?code={copy this code}).
https://login.live.com/oauth20_desktop.srf?code=M7ab570e5-a1c0-32e5-a946-e4490c822954&lc=1033
Copia il codice di concessione (M7ab570e5-a1c0-32e5-a946-e4490c822954) e immettilo nella finestra della console quando richiesto. Lo script di PowerShell restituisce quindi un token di aggiornamento. Usare il token di aggiornamento nello script per ottenere il token di accesso. È consigliabile trattare il token di aggiornamento come si farebbe con una password. se qualcuno ne entra in possesso, ha accesso ai tuoi dati OneDrive.
Il token di aggiornamento ha una lunga durata, ma può non essere valido. Se si riceve un errore invalid_grant, il token di aggiornamento non è più valido e sarà necessario eseguire di nuovo lo script PowerShell per ottenere il consenso e un nuovo token di aggiornamento.
Esempio che scarica un file CSV
Dopo aver ottenuto il token di aggiornamento, l'esempio seguente mostra come 1) usare il token di aggiornamento per ottenere un token di accesso e 2) chiamare Microsoft Graph per ottenere un URL di download usato per scaricare il file CSV. Sostituire {yourclientid} con l'ID applicazione dell'app registrata e sostituire {yourrefreshtoken} con il token di aggiornamento.
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);
}
Analizzare il file CSV
Non esiste uno strumento di analisi CSV integrato, quindi dovrai scrivere il tuo o trovarne uno online. Ad esempio, una rapida ricerca online ha trovato questo su Stack Overflow. Se ne trovi uno online, assicurati che non abbia restrizioni d'uso.
Accesso ai servizi Google
Per informazioni sull'utilizzo di UrlFetchApp per accedere ai servizi Google, vedere Chiamata dei servizi Google.