Foros del Web » Programando para Internet » PHP »

API hacer varias peticiones

Estas en el tema de API hacer varias peticiones en el foro de PHP en Foros del Web. Estoy usando la API de un juego para obtener las estadísitcas de los jugadores y luego hacer un ranking. Con este código improvisado obtengo algunos ...
  #1 (permalink)  
Antiguo 22/05/2013, 12:17
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 3 meses
Puntos: 1
API hacer varias peticiones

Estoy usando la API de un juego para obtener las estadísitcas de los jugadores y luego hacer un ranking. Con este código improvisado obtengo algunos de los datos:
Código PHP:
<?php  
    
function XML_Abfrage_post($url$postDaten) {  
        
$Abfrage curl_init();  
        
curl_setopt($AbfrageCURLOPT_URL$url);  
        
curl_setopt($AbfrageCURLOPT_HEADERtrue);  
        
curl_setopt($AbfrageCURLOPT_RETURNTRANSFERtrue);  
        
curl_setopt($AbfrageCURLOPT_POSTtrue);  
        
curl_setopt($AbfrageCURLOPT_POSTFIELDS$postDaten);  
        
$ausgAbfrage curl_exec($Abfrage);  
        
curl_close($Abfrage);  
        
$xmlAbfrage strstr($ausgAbfrage'<?xml');  
        
$arrayAbfrage simplexml_load_string($xmlAbfrage);
        
        return 
$arrayAbfrage;  
    }   

    
$postString 'eid='.$_GET["eid"].'&dn='.$_GET["dn"];  

    
$arrayLeaderboard XML_Abfrage_post('paginaejemplo.com/api'$postString);  
    
    
$xml = ($arrayLeaderboard);
    foreach (
$xml->gameleadeboard as $simple){
    
$arr $simple->attributes();
    
$duracion = ($arr["eventDurationMilliseconds"]); 
    
         print (
$duracion);
}
    
    
?>
con este código por ejemplo puedo obtener el tiempo de la pista 91 del nick MATHIAS (get: ?eid=91&dn=MATHIAS)

Ahora lo que necesito es agarrar los tiempos de las pistas 1 a 91 para despues agregarlas a mi base de datos... como puedo hacer para agarrar todas las pistas de una vez? asi como hacen en esta página: http://nfs-s.com/nfsw/PERFECT10N
se muestran los tiempos de todas las pistas de ese jugador... ellos obtienen los tiempos por medio de esa API y la guardan en su base de datos cada vez que se pide la actualización de un nick... como lo hacen? como obtienen todos los tiempos si solo se puede obtener el tiempo de 1 pista a la vez? no se si me expliqué bien


EDITO: acabo de contactar con un administrador de esa página y me dijo que tengo que hacer varias peticiones. que solo se puede hacer la peticion de una pista a la vez, y para obtener todas las pistas hay que hacer un montón de peticiones y que no hay otra manera...

Como voy a realizar varias peticiones? Por ejemplo si busco el nick MATHIAS, como voy a hacer las peticiones de todas las pistas de ese nick?... se que es fácil pero no estoy entendiendo

Última edición por mathiasmontiel; 22/05/2013 a las 12:27
  #2 (permalink)  
Antiguo 22/05/2013, 13:37
Avatar de efenollal  
Fecha de Ingreso: abril-2012
Ubicación: Toa Baja
Mensajes: 63
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: API hacer varias peticiones

Quizas si haces un query para almacenarlas en la base de datos una a una cada vez que las adquieras. O sea, cada vez que hagas una peticion con cURL agregas un query que identifique si ya existe el id de ese tiempo y si no existe agregalo a la base de datos. Luego populas la tabla.
  #3 (permalink)  
Antiguo 22/05/2013, 19:33
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: API hacer varias peticiones

ahmm no te entendi muy bien tu explicación... como voy a obtener los valores de las pistas del 1 al 91 al mismo tiempo? o sea como voy a hacer tantas peticiones si es por GET?
  #4 (permalink)  
Antiguo 23/05/2013, 01:11
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: API hacer varias peticiones

bueno encontré una la solución... aunque demasiado "rara", les cuento: con ajax envio por medio de GET desde un formulario el valor 0 y el NICK a OBTENER.PHP. en obtener.php tengo el código de arriba agarrando los datos GET: $postString = 'eid='.$_GET["eid"].'&dn='.$_GET["dn"];
luego agrega/actualiza esos datos a mi base de datos... y luego hace esto: si el valor recibido es 0 entonces header ('location: obtener.php?eid=1$dn=nick); ... si es 1 entonces header ('location: obtener.php?eid=2$dn=nick');...
o sea vuelve a recargar la página con otro valor GET susesivamente hasta llegar a 91, ahi se detiene el header. (todo esto pasa en obtener.php)
todo esto se hace de manera "invisible" gracias a ajax una vez que el usuario envia el formulario con su nick. o sea recarga la página obtener.php 91 veces de manera invisible, cada vez con un valor diferente....... es la cosa más rara que he programado, crei que no iba a funcionar...

solo me queda una duda: recargar ese código 91 veces sucesivamente, es perjudicial para el servidor?

Última edición por mathiasmontiel; 23/05/2013 a las 01:39

Etiquetas: api
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.