edumucelli / cepaberto-api-examples Goto Github PK
View Code? Open in Web Editor NEWExemplos de como implementar a requisição a API do CEP Aberto usando seu token de acesso
License: GNU General Public License v3.0
Exemplos de como implementar a requisição a API do CEP Aberto usando seu token de acesso
License: GNU General Public License v3.0
Estou tentando fazer uma busca utilizando o pacote cepR, em ambiente R. Porém, há 2 dias vem essa mensagem:
cepR::busca_cep(cep = "59082470", token = Sys.getenv("TOKEN_CEPR"))
Error in curl::curl_fetch_memory(url, handle = handle) :
SSL peer certificate or SSH remote key was not OK: [www.cepaberto.com] SSL certificate problem: certificate has expired
Há algum problema com a API, ou seria o meu Token expirado?
Obrigado!
Olá,
Construí um formulário com apenas CEP, cidade e estado. Apenas a pesquisa de CEP para achar a cidade e o estado funciona, mas pesquisa de cidade e o estado para achar o CEP não funciona.
index.php
<p class="sign" align="center">Quer descobrir o CEP ou a cidade?</p>
<form action="resultado.php" class="form1" enctype="multipart/form-data" method="post" role="form">
<input class="cep" align="center" id="cep" max="8" name="cep" tpe="number" placeholder="CEP">
<input class="cidade" align="center" id="cidade" max="30" name="cidade" type="text" placeholder="Cidade">
<input class="cidade" align="center" id="estado" max="2" name="estado" type="text" placeholder="Estado">
<input class="submit" align="center" type="submit" value="Descubra!">
</form>
resultado.php
:
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
if (isset($_POST['cep']))
{
$cep = $_POST['cep'];
$token = 'meutoken';
$url = 'http://www.cepaberto.com/api/v2/ceps.json?cep=' . $cep;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token token="' . $token . '"'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$result = json_decode($output);
?>
<h3>A cidade e o estado deste CEP é...</h3>
<h1><?php echo "$result->cidade, $result->estado."; } ?>
<?php if (isset($_POST['cidade'], $_POST['estado']))
{
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$token = 'meutoken';
$url = 'http://www.cepaberto.com/api/v3/address?estado='.$estado.'&cidade='.$cidade.'';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token token="' . $token . '"'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$result = json_decode($output);
?>
<h3>O CEP desta cidade e deste estado....</h3>
<h1><?php echo "$result->cep."; } ?></h1>
<?php } ?></h1>
Olá! Estou tentando consumir o WS com o React, porém estou tendo problemas para retornar o json via browser.
A consulta funciona utilizando um cliente, tipo o Postman, porém pelo browser não.
Segue mensagem de erro:
Failed to load http://www.cepaberto.com/api/v3/cep?cep=29040040: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
O fonte do cliente:
... const api = create({ baseURL: 'http://www.cepaberto.com/api/v3', //timeout: 10000, headers: { 'Content-Type': 'application/json', 'Authorization': 'Token token=XXXXXXXXXXXXXXXXXXXXX, } }); // start making calls const response = await api.get( '/cep', {}, { params: { cep: this.state.cep.replace('-', '').replace('.', '') } } ); ...
Pelo que parece o problema tem a ver com o CORS e com o método OPTIONS.
Já tentei configurar outros atributos no Header mais sem sucesso...
Alguém tem alguma sugestão?
Olá, realizei um pull request (dd5d912) no repositório https://github.com/edumucelli/cepaberto-api-examples, teria como vocês realizarem uma avaliação no código e ver a possibilidade de aceitar essa modificação. A minha contribuição foi um exemplo de requisição para API em PHP, segue o link: #20.
Está retornando um erro ao buscar o CEP 74010172
Segue retorno de erro: http://textuploader.com/dfb2g
Ao buscar CEPs existentes, está ok.
caros,
estou com problemas em realizar o request localmente através de uma aplicação React, o erro é sobre o bloqueio por conta de politicas CORS.
conseguem me ajudar?
Alguns erros acontece ao se fazer a busca por cidades que possuem letras acentuadas, por exemplo:
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=São Paulo // retorna vazio
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=São+Paulo // retorna vazio
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%E3o+Paulo // erro 500
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%E3o%20Paulo // erro 500
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%C3%A3o%20Paulo // erro 500
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%C3%A3o+Paulo // erro 500
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=São Pedro // sucesso
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=São+Pedro // sucesso
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%E3o+Pedro // erro 500
http://www.cepaberto.com/api/v3/address?estado=SP&cidade=S%E3o%20Pedro // erro 500
etc...
Podemos concluir que a API considera a consulta correta como "São Paulo" ou "São+Paulo" etc. Mas a documentação não é clara quanto a esses pontos.
Acredito que não há mesmo resultado para a consulta considerando a forma correta dos parâmetros, mas seria bom se isto fosse documentado de forma mais clara.
Obrigado
Bom dia,
Ao utilizar esta rota https://www.cepaberto.com/api/v3/cep?cep=14402040 os dados de endereço estão corretos, porém a latitude e longitude estão sendo retornadas erradas.
Endereço: RUA LUIZ CHRYSOGONO DE CASTRO
Latitude/Longitude retornada: -20.5393288 e -47.4013437.
Porém estas coordenadas são da RUA SALDANHA MARINHO, no centro da cidade, distantes 5km uma da outra
A Latitude/Longitude correta seria -20.518379, -47.374264
Como estas coordenadas são retornadas pela API? É consumida outra api ou atualizada por colaboração da comunidade?
grep "Sud Mennucci" cities.csv
resulta em:
863,Bandeirantes D'Oeste (Sud Mennucci),26
9473,Sud Mennucci,26
10405,Bandeirantes D'Oeste (Sud Mennucci),26
Se for analisar com SQL, são 39 casos:
city | ids |
---|---|
Açungui (Rio Branco do Sul)/PR | {48,10494} |
Angustura (Além Paraíba)/MG | {426,10424} |
Bandeirantes D'Oeste (Sud Mennucci)/SP | {863,10405} |
Barra Alegre (Bom Jardim)/RJ | {906,10409} |
Bom Jesus da Cachoeira (Muriaé)/MG | {1310,10425} |
Capão Seco (Sidrolândia)/MS | {2006,10487} |
Catuai (São José do Rio Claro)/MT | {2266,10484} |
Coronel Teixeira (Marcelino Ramos)/RS | {2677,10536} |
Dias Coelho (Morro do Chapéu)/BA | {2965,10439} |
Floresta (Central de Minas)/MG | {3440,10415} |
Frei Eustáquio (Coqueiral)/MG | {3523,10427} |
Freire Cardoso (Coronel Murta)/MG | {3531,10432} |
Frutal do Campo (Cândido Mota)/SP | {3543,10407} |
Iguiporã (Marechal Cândido Rondon)/PR | {4081,10509} |
Indianápolis (Barra do Garças)/MT | {4146,10485} |
Isabel (Domingos Martins)/ES | {4283,10410} |
Itacava (Coração de Maria)/BA | {4313,10437} |
Itaóca (Cachoeiro de Itapemirim)/ES | {4415,10411} |
Nossa Senhora de Fátima (Bela Vista)/MS | {6062,10488} |
Nova Mocajuba (Bragança)/PA | {6181,10475} |
Palmeirinha (Guarapuava)/PR | {6531,10501} |
Poço Fundo (Santa Cruz do Capibaribe)/PE | {7187,10448} |
Pontinha do Cocho (Camapuã)/MS | {7250,10489} |
Porto Sauípe (Entre Rios)/BA | {7326,10446} |
Presidente Castelo (Deodápolis)/MS | {7397,10492} |
Rincão Del Rei (Rio Pardo)/RS | {7701,10525} |
Santa Bárbara (Ivaiporã)/PR | {8015,10512} |
Santa Elvira (Juscimeira)/MT | {8073,10486} |
Santa Maria (Alto Paraná)/PR | {8162,10516} |
Santana do Paraopeba (Belo Vale)/MG | {8222,10417} |
Santo Antônio do Pirapetinga (Piranga)/MG | {8413,10422} |
São Domingos (União da Vitória)/PR | {8535,10500} |
São Francisco (São Domingos do Norte)/ES | {8581,10412} |
Silva Xavier (Sete Lagoas)/MG | {9378,10419} |
Sítio do Meio (Castro Alves)/BA | {9412,10438} |
Várzea da Volta (Moraújo)/CE | {10105,10461} |
Vila Celeste (Santa Helena)/PR | {10218,10508} |
Vila Nova de Florença (São Jerônimo da Serra)/PR | {10261,10510} |
Vila Progresso (Salto do Céu)/MT | {10282,10480} |
PS: precisaria também explicar qual o conceito de "cities" (10560 registros), visto que municípios oficialmente existem 5570, ver http://datasets.ok.org.br/city-codes
Apesar do anuncio, não se vê link para download no site http://cepaberto.com , nem um repositorio Github ou algo semelhante.
Primeiro agradecer por esta maravilhosa ferramenta que é o CEP Aberto.
Acabei de criar a conta e pegar o token, porém em teste já me acesso negado, testei em PHP, Dart, Javascript e até os seus exemplos, porém, o único que responde corretamente é o Thunder Client do VS Code.
Adicionei até mesmo os Headers do Thunder na requisição da aplicação, mas mesmo assim acontece o erro.
Boa noite!
Realizei a implementação do consumo da API do Cep Aberto na minha aplicação .NET 5, e rodando local está tudo 100%, consigo passar o CEP e recuperar Latitude e Longitude. Porém, quando publico minha aplicação na AWS (EBS) estou tendo o seguinte retorno no meu serviço que consome a API do Cep Aberto:
Message: The SSL connection could not be established, see inner exception. - Exception: System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: NotTimeValid
Lembrando que, estou informando no Header o Token gerado após cadastro na plataforma, e localmente não tenho problemas.
Segue log completo da exception retornada:
Message: The SSL connection could not be established, see inner exception. - Exception: System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: NotTimeValid at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception) at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm) at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) - StackTrace: at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
A URL a ser consumida está sendo montada da seguinte maneira:
var apiUrl = $"{apiBaseUrl}{apiVersion}/cep?cep={zipCode}";
Onde:
O Certificado da minha aplicação está válido até Maio desse ano, emitido pela ACM.
Poderia me ajudar a identificar o motivo de não conseguir consumir nesse cenário descrito, por gentileza?
Obrigado desde já!
curl -I -X GET -H "Token token: xpto" http://www.cepaberto.com/api/v3/cep?cep=40010000
HTTP/1.1 400 Bad Request
Date: Sun, 08 Apr 2018 16:24:47 GMT
Server: Apache/2.4.25 (Debian)
Content-Length: 305
Connection: close
Content-Type: text/html; charset=iso-8859-1
parece que o meu token nao é valido... é preciso ativer esse token de outra maneira?
Estou tentando receber os dados usando latitude e longitude, mas me retorna uma cidade muito longe da minha.
Latitude e longitude testados: -21.1248664,-41.671004
Estou usando a linguagem dart e minha classe eh essa:
class CepViaLatitude {
static Future fetchCep({String lat, String lng}) async {
var headers = {'Authorization': 'Token token=5ead8f2681f26e822b9bfced57463340'};
final response = await http.get('https://www.cepaberto.com/api/v3/nearest?lat='+lat+'&lng='+lng, headers: headers);
if (response.statusCode == 200) {
return CepResult.fromJson(response.body);
} else {
throw Exception('Requisição inválida!'+ response.statusCode.toString());
}
}
}
O resultado está dizendo que estou em Niteroi, mas seria Bom Jesus do Itabapoana que fica a uns 500km de Niteroi.
Não sei se a url está correta mas observando as outras linguagens e exemplos me parece esta correta.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.