Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se você precisa gerenciar recursos na Web, use os seguintes métodos de UrlFetchApp.
Pedido GET simples
Utilize fetch(url) se apenas precisa de obter um recurso Web.
var response = UrlFetchApp.fetch('https://www.contoso.com');
O fetch(url) método retorna um objeto HTTResponse , que tem os métodos para ler a resposta. Use o getContentText método para ler uma resposta de texto e getContent para ler uma resposta binária.
Se o corpo da resposta contiver um objeto JSON, use getContentText para obter o objeto JSON. Para acessar os campos individuais no objeto JSON, use o JSON.parse() método para analisar a resposta.
var stock = JSON.parse(response.getContentText());
Logger.log(`stock symbol: ${stock["symbol"]}`);
Logger.log(`company: ${stock["companyName"]}`);
Logger.log(`close price: ${stock["close"]}`);
Manipulando erros HTTP
Se o pedido falhar (por exemplo, com pedido 400 incorreto), o serviço deixa de processar o script e escreve uma mensagem de erro no registo. A mensagem inclui o código de estado HTTP do pedido, mas não a mensagem de erro que pode estar no corpo da resposta.
Se você precisar obter o corpo da resposta, chame o fetch(url, params) método em vez disso e defina o parâmetro muteHttpExceptions como true. Definir muteHttpExceptions como true sempre retorna o controle ao seu script. Em seguida, terá de chamar o getResponseCode() método para determinar o sucesso ou a falha do pedido e agir em função disso.
var response = UrlFetchApp.fetch('https://contoso.com', { muteHttpExceptions: true });
if (200 == response.getResponseCode())
{
Logger.log('HTTP request succeeded');
}
else
{
Logger.log('HTTP request failed');
}
Adicionar, atualizar ou eliminar um recurso Web
Se você precisar adicionar, atualizar ou excluir um recurso da Web, use o método fetch(url, params). Esse método permite especificar o verbo HTTP a ser usado, o cabeçalho Content-Type, quaisquer outros cabeçalhos que sua solicitação precisa e a carga útil da solicitação. Para obter detalhes sobre esses parâmetros, consulte o objeto UrlFetchParams .
O exemplo a seguir obtém um recurso que requer um token de acesso OAuth. Como GET é o verbo HTTP padrão do método de busca, o único parâmetro que você precisa especificar é o headers parâmetro.
var token = "<the oauth token goes here>";
var response = UrlFetchApp.fetch('https://contoso.com', { headers: { Authorization: `Bearer ${token}` } });
var jsonObject = JSON.parse(response.getContentText());
Este exemplo envia uma solicitação POST com uma carga JSON. Como a carga útil é um objeto JSON, o exemplo define o contentType parâmetro como 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());
Utilize UrlFetchApp para obter um ficheiro de dados ou CSV a partir do OneDrive.
Para obter um ficheiro do OneDrive (https://onedrive.live.com), utilize o Microsoft Graph. Para aceder a um ficheiro do OneDrive é necessário um token de acesso OAuth. Além disso, obter um token de acesso requer o consentimento do utilizador, a menos que tenha um token de atualização. No entanto, como o Scripts não suporta componentes de IU, terá de obter consentimento de outra forma. Se ainda não tiver outra forma de obter um token de atualização, eis um script do PowerShell que pode executar para obter consentimento e o token de atualização.
$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
Antes de poder executar o script do PowerShell, tem de seguir estes passos para obter um ID de cliente.
- Aceda e https://apps.dev.microsoft.com clique em Adicionar uma aplicação.
- Introduza um nome de aplicação como cliente de Scripts. (Não marque a Configuração guiada.)
- Clique em Criar e anote o ID do aplicativo (ID do cliente).
- Clique em Adicionar plataforma e, em seguida, Aplicativo nativo.
- Em Permissões delegadas do Microsoft Graph, clique em Adicionar e selecione Files. Leia e offline_access.
- Clique em Guardar.
Abra o Bloco de Notas ou o seu editor favorito e copie o script do PowerShell para o editor. Defina $clientID o ID do aplicativo que você recebeu quando registrou seu aplicativo.
$clientId = "abc123-4d9e-44f1-837d-a7244af50027"
Guarde o ficheiro e dê-lhe um nome GetTokens.ps1 (pode atribuir-lhe o nome que pretender, mas a extensão tem de estar .ps1).
Agora, abra uma janela da consola. Para abrir uma janela da consola no Microsoft Windows, introduza o seguinte comando Executar do Windows (<Windows, botão>+r):
cmd.exe
Na linha de comandos, navegue para a pasta onde guardou GetTokens.ps1. Em seguida, introduza o seguinte comando.
powershell.exe -File .\GetTokens.ps1
Se obtiver um erro de política de execução, terá de alterar a sua política de execução. Para opções de política de execução, consulte Sobre políticas de execução. Para alterar a política de execução de uma sessão, introduza o seguinte comando:
powershell.exe -ExecutionPolicy Bypass -File .\GetTokens.ps1
Quando o script do PowerShell é executado com êxito, inicia uma sessão de browser na qual introduz as suas credenciais da conta Microsoft (MSA) (as credenciais têm de ter acesso aos seus ficheiros do OneDrive). Após o consentimento, a barra de endereço do navegador contém o código de concessão (consulte ?code={copy this code}).
https://login.live.com/oauth20_desktop.srf?code=M7ab570e5-a1c0-32e5-a946-e4490c822954&lc=1033
Copia o código de concessão (M7ab570e5-a1c0-32e5-a946-e4490c822954) e introduz-o na janela da consola no pedido. Em seguida, o script do PowerShell devolve um token de atualização. Utilize o token de atualização no seu script para obter o token de acesso. Você deve tratar o token de atualização como faria com uma senha; se alguém aceder aos mesmos, terá acesso aos seus dados do OneDrive.
O token de atualização dura muito, mas pode tornar-se inválido. Se receber um erro de invalid_grant, o token de atualização deixa de ser válido e terá de executar novamente o script do PowerShell para obter consentimento e um novo token de atualização.
Exemplo que transfere um ficheiro CSV
Após obter o token de atualização, o seguinte exemplo mostra como 1) utilizar o token de atualização para obter um token de acesso e 2) contactar o Microsoft Graph para obter um URL de transferência que utiliza para transferir o ficheiro CSV. Substitua {yourclientid} pelo ID de aplicativo do aplicativo registrado e substitua {yourrefreshtoken} pelo token de atualização.
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);
}
Analisar o ficheiro CSV
Não existe nenhuma ferramenta de análise de CSV incorporada, pelo que terá de escrever a sua própria ferramenta ou encontrar uma online. Por exemplo, uma pesquisa rápida online encontrou este no Stack Overflow. Se encontrar uma online, certifique-se de que não tem restrições de utilização.
Aceder aos serviços Google
Para obter informações sobre como usar o UrlFetchApp para acessar os serviços do Google, consulte Chamando os serviços do Google.