Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Google Planilhas Avançado - #100 Frete e Prazo (Correios)

13/06/2022

No tutorial de hoje aprenderemos como integrar a Planilha do Google com os Correios trazendo o valor e prazo de entrega do frete.

Google Planilhas e Correios

Para criação desse código utilizaremos três sites como referência:

Webservice dos Correios
Manual de Utilização dos Correios
Classe UrlFetchApp

No código enviaremos uma requisição GET para o webservice dos correios passando alguns parâmetros e receberemos como resposta o valor e prazo da entrega.

appsscript.json

Antes de mais nada cabe ressaltar que no Google Apps Script precisaremos colocar explicitamente os escopos. Para isso, vamos em configurações, Mostrar arquivo manifesto.

Nesse arquivo inseriremos o escopo para usar a classe UrlFetchApp:

{
    "timeZone": "America/Sao_Paulo",
    "dependencies": {},
    "exceptionLogging": "STACKDRIVER",
    "oauthScopes": [
        "https://www.googleapis.com/auth/spreadsheets",
        "https://www.googleapis.com/auth/script.external_request"
    ],
    "runtimeVersion": "V8"
}

Codigo.gs

Configurado essa parte inicial, poderemos desenvolver o código que fará a busca no correio:

let app = SpreadsheetApp;
let spreadsheet = app.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName('Página1');

//Calcula o prazo e o valor do frete
function setFreteAndPrazo()
{
    let cepOrigem = '35500155';
    let cepDestino = sheet.getRange('A2').getValue();
    let options = {
        'method':'get'
    }
    let reqs = UrlFetchApp.fetch(`http://ws.correios.com.br/calculador/calcprecoprazo.asmx/CalcPrecoPrazo?nCdEmpresa=&sDsSenha=&nCdServico=40010&sCepOrigem=${cepOrigem}&sCepDestino=${cepDestino}&nVlPeso=1.2&nCdFormato=1&nVlComprimento=20&nVlAltura=20&nVlLargura=20&nVlDiametro=0&sCdMaoPropria=n&nVlValorDeclarado=200&sCdAvisoRecebimento=n`, options);
    let ress = reqs.getContentText();
    let posValor1 = ress.indexOf('')+7;
    let posValor2 = ress.indexOf('');
    let valor = ress.substring(posValor1,posValor2);
    let posPrazo1 = ress.indexOf('')+14;
    let posPrazo2 = ress.indexOf('');
    let prazo = ress.substring(posPrazo1,posPrazo2);
    sheet.getRange('B2').setValue(valor);
    sheet.getRange('C2').setValue(prazo);
}

Por hoje é só! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Google Planilhas Avançado - #99 Busca por CEP
Nesse tutorial aprenderemos como realizar a busca por CEP dentro do Google Planilhas exibindo o endereço, cidade, bairro e estado.
Saiba mais!
Google Planilhas Avançado - #101 Integração com Bling
Nessa aula aprenderemos como realizar a aintegração do Google Planilhas com a plataforma ERP do Bling, trazendo os produtos do Bling para a planilha.
Saiba mais!
Google Planilhas
Neste curso abordaremos a fundo as funcionalidades do Google Planilha. Adentraremos no Google App Script e na API do Google Sheet. Aproveite.
Saiba mais!