-
Notifications
You must be signed in to change notification settings - Fork 110
Tem como buscar as parciais de todos os times de uma determinada liga durante a rodada? #3
Comments
Também tenho essa dúvida. Quero implementar as parciais no site da minha liga particular (http://www.variosgoles.com.br), mas nesse modelo acaba ficando muito lento, pois minha liga conta com 50 times. Alguém tem alguma sugestão? |
@roomoraaes O seu está bem legal e aparentemente mas rápido do que o meu |
@caioschiavo está um pouco lento o http://caioschiavo.com/quinta/ |
@giovanigenerali sim, bem lento, pq faço 32 requisições, uma para cada time. |
@caioschiavo Não é necessário fazer 32 requisições para cada time. Apenas uma requisição. Quando voce manda um request para a url: |
@roomoraaes então, mas é isso mesmo o que eu faço, 1 requisição para cada time, mas são 32 times, portanto 32 requisições no total. |
@caioschiavo Estranho.... Estou utilizando essa lógica e meu retorno esta bem rápido. Média de 1.20 segundos. Em relação a consulta de autenticação, eu não sei lhe dizer. Não estou usando autenticação no meu projeto, as APIs públicas já estão sendo suficientes para mim. |
@roomoraaes fez em php? Porque vc soma as parciais dos atletas, se no JSON ja vem a parcial do time? |
@caioschiavo Não, a pontuação vem separada com atleta. A pontuação que você está dizendo só é atualizada quando o mercado é aberto, não é parcial. |
@caioschiavo consegui fazer uma chamada direta na API para autenticar e em seguida fazer as chamadas que requerem token. Autenticação para obter o tokenTem que fazer um post via json nessa url: https://login.globo.com/api/authentication O conteúdo do json quem que seguir esse padrão: {"payload":{"email":"[EMAIL]","password":"[SENHA]","serviceId": 438}} O retorno do post vai trazer esse json: {"id":"Authenticated","userMessage":"Usuário autenticado com sucesso","glbId":"[TOKEN]"} Get nas urls que necessitam de tokenApós isso faça uma chamada get nas urls que precisam de autenticação passando no header a chave 'X-GLB-Token' com o valor do token que foi retornado na chamada de autenticação, exemplo: Informações completa do timehttps://api.cartolafc.globo.com/auth/time/info X-GLB-Token: [TOKEN] {
"time": {
"time_id": 834723,
"clube_id": 264,
"esquema_id": 3,
"cadun_id": 40424774,
"facebook_id": null,
"foto_perfil": "https://cartolafc.globo.com/static/img/placeholder_perfil.png",
"nome": "SLB Encarnados",
"nome_cartola": "Giovani Generali",
"slug": "slb-encarnados",
"tipo_escudo": 1,
"cor_fundo_escudo": "ffffff",
"cor_borda_escudo": "000000",
"cor_primaria_estampa_escudo": "ff241d",
"cor_secundaria_estampa_escudo": "997a00",
"url_escudo_svg": "https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/escudo/004042477420160503190708",
"url_escudo_png": "https://s2.glbimg.com/aSc31ZW1PVPPvUKruorX7jnYbNY=/https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/escudo/004042477420160503190708",
"url_camisa_svg": "https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/camisa/004042477420160503190708",
"url_camisa_png": "https://s2.glbimg.com/0S5uu5oYl2vJvzeEOWsF7scP1Zk=/https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/camisa/004042477420160503190708",
"url_escudo_placeholder_png": "http://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/placeholder/escudo.png",
"url_camisa_placeholder_png": "http://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/placeholder/camisa.png",
"tipo_estampa_escudo": 4,
"tipo_adorno": 1,
"tipo_camisa": 1,
"tipo_estampa_camisa": 5,
"cor_camisa": "ffffff",
"cor_primaria_estampa_camisa": "ff241d",
"cor_secundaria_estampa_camisa": "997a00",
"assinante": false,
"cadastro_completo": true,
"patrocinador1_id": 62,
"patrocinador2_id": 63
}
} Informações do time completahttps://api.cartolafc.globo.com/auth/time X-GLB-Token: [TOKEN] Feito isso, pronto está ai o json com todo o seu time: {
"atletas": [
{
"nome": "Rodrigo Eduardo Costa Marinho",
"apelido": "Rodriguinho",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/28/8d01a11770a124d6d1f9432e0d2cc9eb_FORMATO.png",
"atleta_id": 61033,
"rodada_id": 1,
"clube_id": 264,
"posicao_id": 4,
"status_id": 6,
"pontos_num": 3.1,
"preco_num": 7.43,
"variacao_num": 0.43,
"media_num": 3.1,
"jogos_num": 1,
"partida": {
"clube_casa_id": 287,
"clube_casa_posicao": 19,
"clube_visitante_id": 264,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 8,
"partida_data": "2016-05-22 16:00:00",
"local": "Barradão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"FC": 1,
"FF": 3,
"FS": 2,
"PE": 4,
"RB": 1
}
},
{
"nome": "Gustavo Ermel",
"apelido": "Ermel",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/29/9fbbc2a0195e2d3a7da201dfe77f031e_FORMATO.jpeg",
"atleta_id": 82952,
"rodada_id": 1,
"clube_id": 316,
"posicao_id": 5,
"status_id": 7,
"pontos_num": 2.4,
"preco_num": 6.91,
"variacao_num": -0.09,
"media_num": 2.4,
"jogos_num": 1,
"partida": {
"clube_casa_id": 283,
"clube_casa_posicao": 18,
"clube_visitante_id": 316,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 9,
"partida_data": "2016-05-21 21:00:00",
"local": "Mineirão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"FC": 1,
"FD": 1,
"FS": 5,
"PE": 2
}
},
{
"nome": "Giovanni Augusto Oliveira Cardoso",
"apelido": "Giovanni Augusto",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/28/9930f715c0d34977f60c416dc3311aca_FORMATO.png",
"atleta_id": 68938,
"rodada_id": 1,
"clube_id": 264,
"posicao_id": 4,
"status_id": 7,
"pontos_num": -0.5,
"preco_num": 3.31,
"variacao_num": -1.69,
"media_num": -0.5,
"jogos_num": 1,
"partida": {
"clube_casa_id": 287,
"clube_casa_posicao": 19,
"clube_visitante_id": 264,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 8,
"partida_data": "2016-05-22 16:00:00",
"local": "Barradão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"I": 1
}
},
{
"nome": "Adenor Leonardo Bachi",
"apelido": "Tite",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/07/cac34fc5a42fd086e55620d546c496a1_FORMATO.png",
"atleta_id": 45125,
"rodada_id": 1,
"clube_id": 264,
"posicao_id": 6,
"status_id": 7,
"pontos_num": 4.66,
"preco_num": 14.46,
"variacao_num": -0.54,
"media_num": 4.66,
"jogos_num": 1,
"partida": {
"clube_casa_id": 287,
"clube_casa_posicao": 19,
"clube_visitante_id": 264,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 8,
"partida_data": "2016-05-22 16:00:00",
"local": "Barradão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {}
},
{
"nome": "Bruno Viana Willemen da Silva",
"apelido": "Bruno Viana",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/28/5e8c21e4fe26c6bb8c148b2ae722699d_FORMATO.png",
"atleta_id": 92291,
"rodada_id": 1,
"clube_id": 283,
"posicao_id": 3,
"status_id": 2,
"pontos_num": 0,
"preco_num": 3,
"variacao_num": 0,
"media_num": 0,
"jogos_num": 0,
"partida": {
"clube_casa_id": 283,
"clube_casa_posicao": 18,
"clube_visitante_id": 316,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 9,
"partida_data": "2016-05-21 21:00:00",
"local": "Mineirão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {}
},
{
"nome": "Cássio Ramos",
"apelido": "Cássio",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/28/8d0f1d77fad8f00513e096df10da46e2_FORMATO.png",
"atleta_id": 42234,
"rodada_id": 1,
"clube_id": 264,
"posicao_id": 1,
"status_id": 7,
"pontos_num": 0,
"preco_num": 25,
"variacao_num": 0,
"media_num": 0,
"jogos_num": 0,
"partida": {
"clube_casa_id": 287,
"clube_casa_posicao": 19,
"clube_visitante_id": 264,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 8,
"partida_data": "2016-05-22 16:00:00",
"local": "Barradão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {}
},
{
"nome": "Alison Wágner Lira Ferreira",
"apelido": "Alison",
"foto": "https://s.glbimg.com/es/sde/f/2016/05/09/d7263e570ed2a87bc24ead8f629b3d34_FORMATO.png",
"atleta_id": 51702,
"rodada_id": 1,
"clube_id": 327,
"posicao_id": 3,
"status_id": 7,
"pontos_num": 2.1,
"preco_num": 3.75,
"variacao_num": 0.75,
"media_num": 2.1,
"jogos_num": 1,
"partida": {
"clube_casa_id": 315,
"clube_casa_posicao": 13,
"clube_visitante_id": 327,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 14,
"partida_data": "2016-05-22 16:00:00",
"local": "Arena Condá",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"FF": 2,
"FS": 1,
"PE": 5,
"RB": 1
}
},
{
"nome": "Diogo Barbosa Mendanha",
"apelido": "Diogo Barbosa",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/27/97ce1981f4c518e025727a48e20f5476_FORMATO.png",
"atleta_id": 70916,
"rodada_id": 1,
"clube_id": 263,
"posicao_id": 2,
"status_id": 5,
"pontos_num": 0,
"preco_num": 4,
"variacao_num": 0,
"media_num": 0,
"jogos_num": 0,
"partida": {
"clube_casa_id": 292,
"clube_casa_posicao": 17,
"clube_visitante_id": 263,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 15,
"partida_data": "2016-05-22 18:30:00",
"local": "Ilha do Retiro",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {}
},
{
"nome": "Ewandro Felipe de Lima Costa",
"apelido": "Ewandro",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/26/56ad0ab89503a3a67b55fbb9699091ea_FORMATO.png",
"atleta_id": 86842,
"rodada_id": 1,
"clube_id": 293,
"posicao_id": 5,
"status_id": 7,
"pontos_num": -0.8,
"preco_num": 5.29,
"variacao_num": -2.71,
"media_num": -0.8,
"jogos_num": 1,
"partida": {
"clube_casa_id": 293,
"clube_casa_posicao": 20,
"clube_visitante_id": 282,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 5,
"partida_data": "2016-05-22 11:00:00",
"local": "Arena da Baixada",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"FC": 1,
"PE": 1
}
},
{
"nome": "Leonardo Moreira Morais",
"apelido": "Léo",
"foto": "https://s.glbimg.com/es/sde/f/2016/05/13/eac8265d35cda412d31cdfb857c0d6a8_FORMATO.png",
"atleta_id": 69177,
"rodada_id": 1,
"clube_id": 293,
"posicao_id": 2,
"status_id": 3,
"pontos_num": -5.8,
"preco_num": 0.74,
"variacao_num": -2.26,
"media_num": -5.8,
"jogos_num": 1,
"partida": {
"clube_casa_id": 293,
"clube_casa_posicao": 20,
"clube_visitante_id": 282,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 5,
"partida_data": "2016-05-22 11:00:00",
"local": "Arena da Baixada",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"CV": 1,
"FC": 3,
"FS": 2,
"PE": 1
}
},
{
"nome": "Henrique Pacheco de Lima",
"apelido": "Henrique",
"foto": "https://s.glbimg.com/es/sde/f/2016/04/29/3ee91a269e77c0defb08f1fee38c0aff_FORMATO.png",
"atleta_id": 37694,
"rodada_id": 1,
"clube_id": 283,
"posicao_id": 4,
"status_id": 7,
"pontos_num": 5.1,
"preco_num": 6.69,
"variacao_num": 2.69,
"media_num": 5.1,
"jogos_num": 1,
"partida": {
"clube_casa_id": 283,
"clube_casa_posicao": 18,
"clube_visitante_id": 316,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 9,
"partida_data": "2016-05-21 21:00:00",
"local": "Mineirão",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"CA": 1,
"FC": 1,
"FS": 4,
"PE": 4,
"RB": 4
}
},
{
"nome": "Gabriel Barbosa Almeida",
"apelido": "Gabriel",
"foto": "https://s.glbimg.com/es/sde/f/2016/05/01/1483ff1b3cb82fa23bc8625656564b18_FORMATO.png",
"atleta_id": 83257,
"rodada_id": 1,
"clube_id": 277,
"posicao_id": 5,
"status_id": 7,
"pontos_num": -0.8,
"preco_num": 11.18,
"variacao_num": -4.82,
"media_num": -0.8,
"jogos_num": 1,
"partida": {
"clube_casa_id": 277,
"clube_casa_posicao": 16,
"clube_visitante_id": 294,
"aproveitamento_mandante": [
"",
"",
"",
"",
""
],
"aproveitamento_visitante": [
"",
"",
"",
"",
""
],
"clube_visitante_posicao": 4,
"partida_data": "2016-05-22 11:00:00",
"local": "Vila Belmiro",
"valida": true,
"placar_oficial_mandante": null,
"placar_oficial_visitante": null,
"url_confronto": "",
"url_transmissao": ""
},
"scout": {
"FC": 2,
"FF": 2,
"FS": 3,
"I": 3,
"PE": 4
}
}
],
"clubes": {
"262": {
"id": 262,
"nome": "Flamengo",
"abreviacao": "FLA",
"posicao": 5,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/flamengo_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/flamengo_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/flamengo_30x30.png"
}
},
"263": {
"id": 263,
"nome": "Botafogo",
"abreviacao": "BOT",
"posicao": 15,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/botafogo_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/botafogo_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/botafogo_30x30.png"
}
},
"264": {
"id": 264,
"nome": "Corinthians",
"abreviacao": "COR",
"posicao": 8,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/corinthians_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/corinthians_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/corinthians_30x30.png"
}
},
"266": {
"id": 266,
"nome": "Fluminense",
"abreviacao": "FLU",
"posicao": 3,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/fluminense_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/fluminense_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/Fluminense-escudo.png"
}
},
"275": {
"id": 275,
"nome": "Palmeiras",
"abreviacao": "PAL",
"posicao": 1,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/palmeiras_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/palmeiras_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/palmeiras_30x30.png"
}
},
"276": {
"id": 276,
"nome": "São Paulo",
"abreviacao": "SAO",
"posicao": 7,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/sao_paulo_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/sao_paulo_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/sao_paulo_30x30.png"
}
},
"277": {
"id": 277,
"nome": "Santos",
"abreviacao": "SAN",
"posicao": 16,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/santos_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/santos_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/santos_30x30.png"
}
},
"282": {
"id": 282,
"nome": "Atlético-MG",
"abreviacao": "ATL",
"posicao": 5,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/atletico_mg_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/atletico_mg_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/atletico_mg_30x30.png"
}
},
"283": {
"id": 283,
"nome": "Cruzeiro",
"abreviacao": "CRU",
"posicao": 18,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2015/04/29/cruzeiro_65.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2015/04/29/cruzeiro_45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2015/04/29/cruzeiro_30.png"
}
},
"284": {
"id": 284,
"nome": "Grêmio",
"abreviacao": "GRE",
"posicao": 11,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/gremio_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/gremio_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/gremio_30x30.png"
}
},
"285": {
"id": 285,
"nome": "Internacional",
"abreviacao": "INT",
"posicao": 10,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2016/05/03/inter65.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2016/05/03/inter45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2016/05/03/inter30.png"
}
},
"287": {
"id": 287,
"nome": "Vitória",
"abreviacao": "VIT",
"posicao": 19,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/vitoria_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/vitoria_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/vitoria_30x30.png"
}
},
"292": {
"id": 292,
"nome": "Sport",
"abreviacao": "SPO",
"posicao": 17,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/sport65.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/sport45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2015/07/21/sport30.png"
}
},
"293": {
"id": 293,
"nome": "Atlético-PR",
"abreviacao": "ATL",
"posicao": 20,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2015/06/24/atletico-pr_2015_65.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2015/06/24/atletico-pr_2015_45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2015/06/24/atletico-pr_2015_30.png"
}
},
"294": {
"id": 294,
"nome": "Coritiba",
"abreviacao": "COR",
"posicao": 4,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/coritiba_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/coritiba_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/coritiba_30x30.png"
}
},
"303": {
"id": 303,
"nome": "Ponte Preta",
"abreviacao": "PON",
"posicao": 12,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/ponte_preta_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/ponte_preta_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/ponte_preta_30x30.png"
}
},
"315": {
"id": 315,
"nome": "Chapecoense",
"abreviacao": "CHA",
"posicao": 13,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2015/08/03/Escudo-Chape-165.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2015/08/03/Escudo-Chape-145.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2015/08/03/Escudo-Chape-130.png"
}
},
"316": {
"id": 316,
"nome": "Figueirense",
"abreviacao": "FIG",
"posicao": 9,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/figueirense_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/figueirense_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/figueirense_30x30.png"
}
},
"327": {
"id": 327,
"nome": "América-MG",
"abreviacao": "AME",
"posicao": 14,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/equipes/2014/04/14/america_mg_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/america_mg_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/equipes/2013/12/16/america_mg_30x30.png"
}
},
"344": {
"id": 344,
"nome": "Santa Cruz",
"abreviacao": "STC",
"posicao": 2,
"escudos": {
"60x60": "https://s.glbimg.com/es/sde/f/organizacoes/2014/04/14/santa_cruz_60x60.png",
"45x45": "https://s.glbimg.com/es/sde/f/organizacoes/2014/04/14/santa_cruz_45x45.png",
"30x30": "https://s.glbimg.com/es/sde/f/organizacoes/2014/04/14/santa_cruz_30x30.png"
}
}
},
"posicoes": {
"1": {
"id": 1,
"nome": "Goleiro",
"abreviacao": "gol"
},
"2": {
"id": 2,
"nome": "Lateral",
"abreviacao": "lat"
},
"3": {
"id": 3,
"nome": "Zagueiro",
"abreviacao": "zag"
},
"4": {
"id": 4,
"nome": "Meia",
"abreviacao": "mei"
},
"5": {
"id": 5,
"nome": "Atacante",
"abreviacao": "ata"
},
"6": {
"id": 6,
"nome": "Técnico",
"abreviacao": "tec"
}
},
"status": {
"2": {
"id": 2,
"nome": "Dúvida"
},
"3": {
"id": 3,
"nome": "Suspenso"
},
"5": {
"id": 5,
"nome": "Contundido"
},
"6": {
"id": 6,
"nome": "Nulo"
},
"7": {
"id": 7,
"nome": "Provável"
}
},
"time": {
"time_id": 834723,
"clube_id": 264,
"esquema_id": 3,
"cadun_id": 40424774,
"facebook_id": null,
"foto_perfil": "https://cartolafc.globo.com/static/img/placeholder_perfil.png",
"nome": "SLB Encarnados",
"nome_cartola": "Giovani Generali",
"slug": "slb-encarnados",
"tipo_escudo": 1,
"cor_fundo_escudo": "ffffff",
"cor_borda_escudo": "000000",
"cor_primaria_estampa_escudo": "ff241d",
"cor_secundaria_estampa_escudo": "997a00",
"url_escudo_svg": "https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/escudo/004042477420160503190708",
"url_escudo_png": "https://s2.glbimg.com/aSc31ZW1PVPPvUKruorX7jnYbNY=/https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/escudo/004042477420160503190708",
"url_camisa_svg": "https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/camisa/004042477420160503190708",
"url_camisa_png": "https://s2.glbimg.com/0S5uu5oYl2vJvzeEOWsF7scP1Zk=/https://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/svg/camisa/004042477420160503190708",
"url_escudo_placeholder_png": "http://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/placeholder/escudo.png",
"url_camisa_placeholder_png": "http://s3.glbimg.com/v1/AUTH_58d78b787ec34892b5aaa0c7a146155f/placeholder/camisa.png",
"tipo_estampa_escudo": 4,
"tipo_adorno": 1,
"tipo_camisa": 1,
"tipo_estampa_camisa": 5,
"cor_camisa": "ffffff",
"cor_primaria_estampa_camisa": "ff241d",
"cor_secundaria_estampa_camisa": "997a00",
"assinante": false,
"cadastro_completo": true,
"patrocinador1_id": 62,
"patrocinador2_id": 63
},
"patrimonio": 91.76,
"variacao_patrimonio": null,
"esquema_id": 3,
"pontos": 9.460000038146973,
"variacao_pontos": null,
"valor_time": 91.76,
"servicos": [
{
"servicoId": 3004,
"status": "HABILITADO"
},
{
"servicoId": 5391,
"status": "HABILITADO"
},
{
"servicoId": 6490,
"status": "HABILITADO"
},
{
"servicoId": 438,
"status": "HABILITADO"
}
],
"total_ligas": 0,
"total_ligas_matamata": 0
} Obs.: Para testar essas chamadas eu recomendo usar o https://www.getpostman.com/. |
@roomoraaes valeu, acertei a pontuação aqui @giovanigenerali então, isso eu consegui também. Minha duvida seria o seguinte, a cada refresh ele vai autenticar e pegar o token, correto? tem como verificar se ja está autenticado antes de fazer a requisição em https://login.globo.com/api/authentication?? |
@caioschiavo tem uma url que dá para ficar verificando se o usuário está autenticado: http://cocoon.globo.com/?callback=userAuth Retorna esse json: {
"hasProEmail": false,
"isMale": true,
"name": "[nome do usuario]",
"facebookId": null,
"photo": null,
"hasFreeEmail": false,
"lastServices": [
{
"url": "http://globoesporte.globo.com/cartola-fc",
"logo": "https://s.glbimg.com/pc/cw/servico/imagens/400-499/438/icone.png",
"name": "Cartola FC"
}
],
"email": null,
"isSubscriber": false,
"hasFacebook": false
} Para fazer logout, envia um get nessa url: https://login.globo.com/logout Consulte novamente a url de validação, veja que não existe mais o usuário autenticado. http://cocoon.globo.com/?callback=userAuth Retorno: {
"error": "Cookie missing"
} Eu não sei se essa é a melhor forma de fazer essa verificação mas pelo que teste isso até que funciona. Também não sei quanto tempo expira esse token, eu testei aqui e parece que se mantém por um bom tempo. Dependendo da sua necessidade, acho válido essa verificação antes de chamar essas urls que precisam de token. Depois avisa se resolveu, blz. |
@caioschiavo achei uma outra url para validação, segue o mesmo esquema da que postei acima. No callback você pode passar qualquer função. http://cocoon.globo.com/user/logged?callback=userAuth Retorno: userAuth(
{
status: "authorized",
code: "codigo",
name: "nome-usuario",
gender: "sexo",
address: {
city: "cidade",
state: "estado"
},
dateOfBirth: "data-nascimento",
token: "[TOKEN]",
provider: "cadun",
id: idi-cadun
}
) Após o logout: http://cocoon.globo.com/user/logged?callback=userAuth Retorno: userAuth(
{
status: "unauthorized",
token: "r_0Xgq_z_APIW66-kWEfkI3PjwL3k6con5zQQyt3Ay0=",
code: "...50_G6TPxtuslPNUcDugtMPVkg59Cbqge7XsC2cLnA5o=",
id: "12295485759280461717",
provider: "anonymous"
}
) |
Boa Noite, estou acompanhando e desenvolvendo algo também... porém fiquei com uma dúvida... abraços... |
@giovanigenerali é isso ai mesmo, obrigado |
@WMarlon eu acho que na nova API só via slug do time mesmo, cadun e id era usado na API antiga. Talvez nesse seu caso você tenha que fazer uma nova consulta para verificar se o time mudou de nome pois o slug também vai mudar. |
@caioschiavo troca o serviceId para 438 no json de autenticação. |
Fala @giovanigenerali blz? como resolver esse problema XMLHttpRequest cannot load https://login.globo.com/api/authentication. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. a requisição não sendo feita da url deles. Usei assim $( document ).ready(function() { }); |
@spydoug veja o formato do json de envio para autenticação nesse arquivo aqui https://github.com/wgenial/cartrolandofc/blob/master/auth.php |
Fala galera.. to querendo usar essa API do cartola também para criar uma liga à parte.. quero também usar a API do campeonato brasileiro do globoesporte.com.. como proceder para conseguir esse token? a API do camp brasileiro precisa do token?? |
@rafa-trr vc tem informação da API do brasileirão? se tiver algo posta aqui. Veja no código que tem exemplo de como obter o token para chamar a API do CartolaFC, tem que passar seu email e senha. |
@giovanigenerali Estou logado no site da globo.com, acessei o link http://cocoon.globo.com/user/logged?callback=userAuth e me retornou um json com "status":"authorized" e me deu um token.. como faço para passar esse token para ser autenticado quando for acessar uma url em que precisa da autenticação ? |
@rafa-trr dá uma lida aqui mesmo #3 (comment) tem tudo explicado. |
@giovanigenerali beleza cara, vou dar umas testadas |
@rafa-trr esse site não é meu mas aqui nesse meu projeto tem a url da API para listar os jogos. Leia o wiki aqui. |
@spydoug você conseguiu resolver o seu problema na chamada ajax da autenticação? |
Consegui fazer o login e recebo o retorno: [id] => Authenticated até ai tudo bem, a dúvida agora é, como mostrar os dados do meu time = https://api.cartolafc.globo.com/auth/time pode ajudar ? |
Não estou conseguindo acessar os dados do API do cartola, quando informa a URL no browser https://api.cartolafc.globo.com/time/slug/terror-da-catalunya retorna os dados normal, mais na minha aplicação PHP parece que retorna vazio. Esse é meu código $ch = curl_init(); print_r($json_data); É o mesmo código que utilizei o ano passado, alguém está com problema para acessar? |
está normal, dá uma olhada no código aqui do projeto load-api.php |
Boa tarde, Gostaria de saber se alguém está conseguindo pegar a foto do jogador, Agradeço desde já. |
Acho que esse resolve para a foto: https://api.cartolafc.globo.com/atletas/mercado |
@jhonata-menezes |
tem dar um replace na string FORMATO que vem na url da foto. |
@Thialyson vem no Gitter |
@giovanigenerali não consegui, fiz conforme o exemplo que você pediu (load-api.php) e nada fica em branco, resultado em http://fortodo.com.br/laliga/adm/teste.php. código-fonte: header('Content-type: application/json;charset=UTF-8'); $url = "https://api.cartolafc.globo.com/time/slug/terror-da-catalunya"; $json = exec("curl -X GET " . $url); |
@aoliveira82 por favor qualquer dúvida sobre programação, uso da API etc.. postar no Gitter. |
Através do seu código e algumas modificações eu até consegui, mas buscando time por time, individualmente e depois organizando filtrando pelo valor da parcial, porem, lento demais, ja que busca 32 times pelo api.cartolafc.globo.com/times?q=
veja
http://caioschiavo.com/quinta
`$url = "https://api.cartolafc.globo.com/time/{slug}";
$response = (file_get_contents($url));
$teste = (json_decode($response,true));
fiz de ontem pra hoje na correria, só para quebrar um ganho
mas será que tem alguma maneira mais facil?
The text was updated successfully, but these errors were encountered: