User Tag List

  1. #1

    Registrado
    May 2008
    Posts
    1,097
    Agradecimientos
    2692
     
    2525
     
    Mencionado
    2 Post(s)
    Tagged
    0 Hilo(s)

    Aprendiendo XML & API Betfair. Empezando desde 0.

    Hola chic@s!, algunos de vosotros habéis construído aplicaciones que interactuan con la API de betfair para muy diversos propósitos. Quiero seguir vuestros pasos desde 0.

    Mis conocimientos son limitados: aprendí hace mucho a programar en C en modo consola, con entornos de programación como el turboC ó similares. También he hecho alguna tontería en C++. En cuanto a entornos de programación, he hecho alguna cosita con ventanas con el borlandC++ builder6 -programas cutres- y he jugado un poquito con el Microsoft Visual Studio 2008 (pese a que me sigo liando creando según que proyectos). Y fin de la historia. -Para colmo, mi inglés no es del todo malo, pero tampoco es bueno-.


    Me gustaría que me dieraís un empujoncito para empezar, ya que entre el XML, la API de betfair, las bases de datos, los entornos de programación "modernos" y el inglés, me atraganto de sobremanera.

    Leyendo por la ayuda de betfair ( http://bdphelp.betfair.com/API6/6.0/...tml/wwhelp.htm ), encuentro el siguiente código para logearse (algo que debería ser sencillo para empezar):

    Example API Request and Response

    The following example shows an example XML request and response for the login service.
    The request is:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns: xsd="XML Schema">
    <soap:Body>
    <login xmlns="http://www.betfair.com/publicapi/v3/BFGlobalService/">
    <request>
    <locationId xmlns="">0</locationId>
    <password xmlns="">bfpassword</password>
    <productId xmlns="">82</productId>
    <username xmlns="">bfusername</username>
    <vendorSoftwareId xmlns="">0</vendorSoftwareId>
    </request>
    </login>
    </soap:Body>
    </soap:Envelope>

    Y en la misma ayuda, nos dice que la respuesta que recibiremos será la siguiente:

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/global/v3/" xmlns: xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <n:loginResponse xmlns:n="http://www.betfair.com/publicapi/v3/BFGlobalService/">
    <n:Result xsi:type="n2:LoginResp">
    <header xsi:type="n2:APIResponseHeader">
    <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
    <minorErrorCode xsi:nil="1"> </minorErrorCode>
    <sessionToken xsi:type="xsd:string">PKdvAW+ruIAg0s769DeM+vxY=</sessionToken>
    <timestamp xsi:type="xsd:dateTime">2007-08-23T11:25:05.285Z</timestamp>
    </header>
    <currency xsi:type="xsd:string">GBP</currency>
    <errorCode xsi:type="n2:LoginErrorEnum">OK</errorCode>
    <minorErrorCode xsi:nil="1">
    </minorErrorCode>
    <validUntil xsi:type="xsd:dateTime">0001-01-01T00:00:00.000Z</validUntil>
    </n:Result>
    </n:loginResponse>
    </soap:Body>
    </soap:Envelope>

    In this example, the sessionToken contains the value PKdvAW+ruIAg0s769DeM+vxY=.

    Pues bien, haré mi primera pregunta tonta que me sacará los colores : ¿dónde meto ese código XML para que me genere esa respuesta?, he probado metiéndolo directamente en el navegador, cambiando el bfusername y el bfpassword por los míos de betfair, y no me genera ningún código de respuesta, salvo el que yo mismo he escrito de salida.

    Supongo que tengo que crear algún proyecto, incluir algunas librerías para que se entienda el XML - using System.xml - ó !qué se yo!. ¿Alguna ayuda para empezar?, ¿algún entorno de programación en concreto? (recordad que acabaré programando en C o, como mucho, C++), ¿cómo creo correctamente el proyecto en cuestión?. ¿Qué código ó archivos tengo que picar ó agregar en ese proyecto vacío para generar esa respuesta XML?, ... Estoy bastante perdido en éste punto .


    Gracias anticipadas por la ayuda y disculpad mi torpeza. A la noche os leo.

    P.D. Quien tenga más dudas a cerca de programación en XML & API betfair, puede aprovechar el hilo.

    P.D.2. Para aprender XML, me está sirviendo el libro Manual Imprescindible de XML. Autor: Juan Diego Gutiérrez Gallardo. Editorial: Anaya.
    La guía para usar la API de betfair, la podéis bajar en pdf de la página Betfair Developer Program - Web Links

    Salu2!

  2. Agradecimientos barroco, ¿Por qué no?, m4t4, anogues ha(n) agradecido este post
    Total: 4 Agradecimientos
  3. #2

    Registrado
    Apr 2009
    Posts
    2,135
    Agradecimientos
    4395
     
    2454
     
    Mencionado
    40 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Hola Galois

    te recomiendo que sigas alguno de los ejemplos que encontrarás aquí:
    Betfair Developer Program - Web Links

    Verás que el API soporta diferentes tipos de lenguajes, destacando php5, java, c#, etc.
    Coge el que domines, bájate el ejemplo del link que te he puesto, e intenta entender todo paso a paso. Cómo se loguea, cómo se estructura la información, como se usan las llamadas al API en el código nativo, etc.

    Verás que poco a poco todo va encontrando su sitio en tu cabeza y el puzzle final se va completando.

    Si tienes alguna duda coméntame.
    Un saludo y suerte!

  4. Agradecimientos anogues, Galois ha(n) agradecido este post
    Total: 2 Agradecimientos
  5. #3

    Registrado
    Jan 2010
    Posts
    1
    Agradecimientos
    0
     
    3
     
    Mencionado
    0 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Aprovecho y estreno cuenta a ver si te puedo ayudar.

    El API son servicios web. aprende PHP o .NET que son mas sencillitos y vas a encontrarte mucho hecho, en Google hay miles de ejemplos de programar servicios web en .NET o en PHP. Si sabes C mira de aprender C#.

    Luego el servicio web no se llama con el navegador, bueno si pero no. Para hacer pruebas te miras este programita WebServiceStudio . Metes el WSDL https://api.betfair.com/global/v3/BFGlobalService.wsdl y te sale todo lo que puedes hacer y hazte muchas pruebas hasta que pilles el truco y lee el manual de Betfair.

    Luego prueba con https://api.betfair.com/exchange/v5/...geService.wsdl y ves los otros servicios.

    El Visual Studio si no es muy antiguo te deja añadir el WSDL en tu proyecto creo, y te monta los métodos con sus parametros y eso.

  6. Agradecimientos belkisna, anogues, Galois ha(n) agradecido este post
    Total: 3 Agradecimientos
  7. #4

    Registrado
    May 2005
    Ubicación
    Barcelona
    Posts
    2,307
    Agradecimientos
    4629
     
    4593
     
    Mencionado
    5 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Te han dado buenos consejos. Yo con el xml no perderia mucho tiempo, pues lo que necesitas saber es muy reducido.

    Lo que necesitaras asi a bote pronto.

    * Lenguaje de programacion. Usa el que mas domines o el que mas te guste
    * Base de datos (si pretendes hacer historicos y cosas de estas) Usa la que queras tambien. Mysql está muy extendida pero segun que quieras puede ser ultil otra cosa
    * Web Services. Esto si que te lo has de mirar bien. Ultimamente todo slos libros ya vienen con uno o varios capitulos dedicados a esto pero hay de varios tipos, cada lenguaje tiene alguno propio y van cambiando con el tiempo, al menos en java pasa eso.
    * Sobre XML no creo que te haga falta, mas bien te hace falta algo como sax o dom, mas bien dom. Busca una implementación de dom que sea buena para tu lenguaje de programación (si la nativa no te sirve) y eso es lo que basicamente te hace falta.
    * Leerte los ejemplos del bdp de betfair. Casi para todos los lenguajes hay ejemplo con su código fuente. Hecha un vistazo y si no entiendes algo pregunta.

    Salu2

  8. Agradecimientos belkisna, Galois ha(n) agradecido este post
    Total: 2 Agradecimientos
  9. #5

    Registrado
    May 2005
    Ubicación
    Barcelona
    Posts
    2,307
    Agradecimientos
    4629
     
    4593
     
    Mencionado
    5 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Sobre el session token que ahora veo en el texto que has escrito.

    Cuando realizas la peticion de louin con el usuario y password este en el response si no ando equivocado (lo digo de memoria) responde el session token aki.

    Pues las sucxesivas peticiones a la api, en el header tienes que insertar el session token, asi la api sabe que eres TU EL QUE ESTA HACIENDO LA PETICIÓN.

    Creo recordar que era asi, un segundo que te miro mi código cutre de login y te lo digo

  10. Agradecimientos barroco, Galois ha(n) agradecido este post
    Total: 2 Agradecimientos
  11. #6

    Registrado
    May 2005
    Ubicación
    Barcelona
    Posts
    2,307
    Agradecimientos
    4629
     
    4593
     
    Mencionado
    5 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Un trozo de mi código de ejemplo, en java

    package bfapi;

    import java.util.List;

    /**
    *
    * @author anogues
    */
    public class conection {

    String username;
    String password;
    String sessionToken;
    double balance;
    com.betfair.publicapi.types.exchange.v5.APIRequest Header ReqHeader;
    com.betfair.publicapi.types.global.v3.APIRequestHe ader ReqHeaderglobal;

    public void doLogin(String username, String password){
    System.out.println(username + password);
    this.username=username;
    this.password=password;
    try { // Call Web Service Operation
    com.betfair.publicapi.v3.bfglobalservice.BFGlobalS ervice_Service service = new com.betfair.publicapi.v3.bfglobalservice.BFGlobalS ervice_Service();
    com.betfair.publicapi.v3.bfglobalservice.BFGlobalS ervice port = service.getBFGlobalService();
    // TODO initialize WS operation arguments here
    com.betfair.publicapi.types.global.v3.LoginReq request = new com.betfair.publicapi.types.global.v3.LoginReq();
    // TODO process result here
    request.setUsername(this.username);
    request.setPassword(this.password);
    request.setProductId(82);
    com.betfair.publicapi.types.global.v3.LoginResp result = port.login(request);
    //System.out.println("Result = "+result.getHeader().getSessionToken());
    this.sessionToken=result.getHeader().getSessionTok en();
    this.ReqHeaderglobal = new com.betfair.publicapi.types.global.v3.APIRequestHe ader();
    this.ReqHeaderglobal.setSessionToken(this.sessionT oken);

    try { // Call Web Service Operation
    com.betfair.publicapi.v5.bfexchangeservice.BFExcha ngeService_Service service2 = new com.betfair.publicapi.v5.bfexchangeservice.BFExcha ngeService_Service();
    com.betfair.publicapi.v5.bfexchangeservice.BFExcha ngeService port2 = service2.getBFExchangeService();
    // TODO initialize WS operation arguments here
    com.betfair.publicapi.types.exchange.v5.GetAccount FundsReq request2 = new com.betfair.publicapi.types.exchange.v5.GetAccount FundsReq();
    // TODO process result here
    this.ReqHeader = new com.betfair.publicapi.types.exchange.v5.APIRequest Header();
    this.ReqHeader.setSessionToken(this.sessionToken);
    request2.setHeader(this.ReqHeader);
    com.betfair.publicapi.types.exchange.v5.GetAccount FundsResp result2 = port2.getAccountFunds(request2);
    //System.out.println("Result = "+result2.getAvailBalance());
    this.balance = result2.getAvailBalance();
    System.out.println(this.balance);
    } catch (Exception ex) {
    // TODO handle custom exceptions here
    }

    } catch (Exception ex) {
    // TODO handle custom exceptions here
    }


    }

  12. Agradecimientos Galois ha(n) agradecido este post
    Total: 1 Agradecimientos
  13. #7

    Registrado
    Apr 2009
    Posts
    2,135
    Agradecimientos
    4395
     
    2454
     
    Mencionado
    40 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    No os compliquéis con web services.
    Mirad el ejemplo de Java. El interfaz del API se queda mascadito mascadito.

  14. Agradecimientos Galois ha(n) agradecido este post
    Total: 1 Agradecimientos
  15. #8

    Registrado
    May 2005
    Ubicación
    Barcelona
    Posts
    2,307
    Agradecimientos
    4629
     
    4593
     
    Mencionado
    5 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Bueno esta hecho una mierda pues aun no he identado ni nada porque lo escribí rapidamente en un momento.

    Pero básicamente fijate aqui:

    this.sessionToken=result.getHeader().getSessionTok en();

    YO GUARDO EN UNA VARIABLE sessionTOKEN MIA el token que me devuelve el login.

    Luego cuando llamo a otra funcion conmo el consultar saldo le meto en el HEADER EL TOKEN DE LA SESION

    this.ReqHeaderglobal.setSessionToken(this.sessionT oken);

    this.ReqHeader = new com.betfair.publicapi.types.exchange.v5.APIRequest Header();
    this.ReqHeader.setSessionToken(this.sessionToken);
    request2.setHeader(this.ReqHeader);

    de hecho se puede guarda rel header entero puesto que creo que solo hay ahi interesante el token.

    Juraria que va asi, se que el código este funciona porque lo he probado, ahora bien no se si s epuede hacer mejor (seguro que si) y en menos linias o de otras maneras.

  16. Agradecimientos Galois ha(n) agradecido este post
    Total: 1 Agradecimientos
  17. #9

    Registrado
    May 2005
    Ubicación
    Barcelona
    Posts
    2,307
    Agradecimientos
    4629
     
    4593
     
    Mencionado
    5 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Citar Originalmente publicado por Algar Ver post
    No os compliquéis con web services.
    Mirad el ejemplo de Java. El interfaz del API se queda mascadito mascadito.
    Cierto, el del ejemplo de java ha hecho una api que ya te da la sllamadas mas comunes, pero a mi me gusta hacermelo todo yo, es cuestion de gustos, jeje.

    Salu2

  18. Agradecimientos Galois, Algar ha(n) agradecido este post
    Total: 2 Agradecimientos
  19. #10

    Registrado
    Apr 2009
    Posts
    2,135
    Agradecimientos
    4395
     
    2454
     
    Mencionado
    40 Post(s)
    Tagged
    0 Hilo(s)

    Re: Aprendiendo XML & API Betfair. Empezando desde 0.

    Lo digo porque en realidad el API que se usa con Java es un wrapper del web service que te da acceso a las mismas funciones. Al menos yo no he visto nada que no pueda llamar desde el ejemplo de Java y que sí me permita hacerlo un web service. Es decir, da la misma funcionalidad pero yo lo veo mucho más asequible/portable/etc.

    Dependiendo de cómo esté Galois en web services o en java puede ser más que interesante que considere las diferencias antes de hacer nada, para ganar tiempo y no estudiarse cosas que no va a usar.

  20. Agradecimientos Galois, anogues ha(n) agradecido este post
    Total: 2 Agradecimientos
Página 1 de 15 1234511 ... Última

collapse posting rules Reglas del foro

  • No puedes crear nuevos hilos
  • No puedes enviar respuestas
  • No puedes subir anexos
  • No puedes editar tus mensajes
  •