Esta é um página de documentação sobre o como interagir com a "interface de programação para aplicações". Aqui você encontrará detalhes para programar suas aplicações usando qualquer cliente HTTP.
Você pode usar esta API para obter informações sobre resultados dos jogos e análises de sorteios realizados pela loteria Caixa Economica Federal. Disponibilizo este serviço no intuíto de automatizar a divulgação dos resultados lotéricos e facilitar a padronização os dados para desenvolvedores de aplicações voltadas à este contexto. Desta forma, não existe nenhum vínculo direto entre este serviço e a CEF.
Se você ficou interessado, inscreva-se:
A sua permissão de acesso será concedida pelo token de autenticação, e não mais por "usuário e senha" como de costume, estes serão usados apenas uma vez para a criação do token, o qual deverá ser enviado no cabeçalho de cada requisição HTTP ao servidor.
Esta forma de autenticação aumenta a seguraça das conexões, uma vez que seu usuário e senha não trafegam pela rede e nem estarão expostos em código de programação.
Observações:
//Exemplo:
{
"Success": true,
"Token": "PyMAIhLlIYUEsK0gCk5sOR9fdp32XN7sYL8=",
"Message": "201 - OK (Token gerado com sucesso.)"
}
Configure de acordo com os passos a seguir:
//Exemplo:
{ "Codigo": "0001", "Senha": "psw123" }
Conforme a imagem abaixo:
diadesorte
duplasena
federal
loteca
lotofacil
lotogol
lotomania
megasena
quina
timemania
Configure de acordo com os passos a seguir:
Para facilitar os testes, exportei minha coleção de requisições no Postman, faça o download, descompacte e realize a importação do arquivo para a ferramenta.
Dica: Antes da importação, abra o arquivo no editor de texto de sua preferência, e substitua o valor de todos os atributos nomeados como "A-Token" com o valor do novo token que você gerou. Caso contrário terá que subistituí-lo manualmente para cada requisição de teste.
Com isso, os passos [1, 2 e 3] de configuração para os "teste de resposta" podem ser ignorados, bastando apenas clicar no item da coleção.
Por padrão, o retorno dos dados é em JSON, caso deseje em XML especifique o "Accept" como "application/xml", no cabeçalho da requisição. Veja abaixo:
O Postman já facilita nosso trabalho, gerando automaticamente exemplos de códigos em diversas linguangens de programação. Confira:
Mas também forneço aqui alguns modelos para auxiliar no uso inicial da API. Qualquer dúvida estarei disposto a ajudá-lo.
_ _ _ _ _ _ _
| || |___| | |___ __ __ _____ _ _| |__| | |
| __ / -_) | / _ \_ \ V V / _ \ '_| / _` |_|
|_||_\___|_|_\___( ) \_/\_/\___/_| |_\__,_(_)
|/
;
using System;
using System.IO;
using System.Net;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string token = "C2g8+MvcW4PEzINa8mmBjs0HLUZDwjPMU="
string result = BuscarSorteio(token);
Console.Write(result);
Console.Read();
}
private static string BuscarSorteio(string token)
{
HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create("#/duplasena/last");
httpWReq.Method = "GET";
httpWReq.ContentType = "application/json; charset=utf-8";
httpWReq.Headers.Add("A-Token", token);
HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
}
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *urlString = @"#/account/authenticate"
NSMutableDictionary *tokenObject = [[NSMutableDictionary alloc] init];
[tokenObject setObject:@"0001" forKey:@"Codigo"];
[tokenObject setObject:@"psw123" forKey:@"Senha"];
NSError *myError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:tokenObject options:NSJSONReadingMutableLeaves error:&myError];
if (myError == nil)
{
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *requestData = [[NSMutableURLRequest alloc] init];
[requestData setURL:url];
[requestData setHTTPMethod:@"POST"];
[requestData setValue:[NSString stringWithFormat:@"%lu",(unsigned long)[[jsonString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES] length]] forHTTPHeaderField:@"Content-Length"];
[requestData setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
[requestData setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
NSURLResponse *response;
NSData *localData = [NSURLConnection sendSynchronousRequest:requestData returningResponse:&response error:&myError];
if (myError == nil)
{
NSString *result = [[NSString alloc] initWithData:localData encoding:NSASCIIStringEncoding];
NSLog(@"Post result : %@", result);
}
}
[pool drain];
return 0;
}
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery.ajax({
url: "#/duplasena/last",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
headers: {
"A-Token": "C2g8+MvcW4PEzINa8mmBjs0HLUZDwjPMU="
},
success: function (result) {
console.log(result);
},
error: function (xhr, ajaxOptions, thrownError) {
console.error("\n xhr.status: " + xhr.status +
"\n xhr.statusText: " + xhr.statusText +
"\n xhr.readyState: " + xhr.readyState +
"\n xhr.redirect: " + xhr.redirect +
"\n textStatus: " + ajaxOptions +
"\n errorThrown: " + thrownError);
}
});
});
</script>
<?php
$options = array(
'http' => array(
'method' => 'GET',
'header' => 'A-Token: C2g8+MvcW4PEzINa8mmBjs0HLUZDwjPMU=',
)
);
$context = stream_context_create($options);
$json = file_get_contents('#/duplasena/last', false, $context);
$result = json_decode($json);
var_dump($result);
?>
{
"Success": false,
"Token": null,
"Message": "404 - NotFound"
}
Possíveis causas:
{
"Success": false,
"Token": null,
"Message": "403 - Forbidden"
}
Possíveis causas:
{
"Success": false,
"Token": null,
"Message": "402 - PaymentRequired"
}
Possíveis causas:
{
"Success": false,
"Token": null,
"Message": "401 - Unauthorized",
}
Possíveis causas:
{
"Success": false,
"Token": null,
"Message": "403 - Forbidden",
}
Possíveis causas:
{
"Success": false,
"Token": null,
"Message": "417 - ExpectationFailed",
}
Possíveis causas:
{
"401 - Unauthorized"
}
Possíveis causas: