Viendo que el mercado de Betfair se mueve muy rápido para ser todo manual, y con los comentarios de @The Horse Whisper sobre Cymatic, me he dicho que había que probar si era verdad eso de que se puede acceder al API de Betfair siendo español.

Así que la respuesta es que sí. Veamos cómo.

Hay 3 formas de hacer login:
- Interactive login, para desktop, que básicamente consiste en embeber la página de login de Betfair
- Non-Interactive (bot) login, especialmente preferido para bots
- Interactive Login - API Endpoint, el método más simple.

El primero no me interesa, así que no lo he mirado.

Para el segundo se necesita un certificado, que tenéis que subir en https://myaccount.betfair.es/account...rity?showAPI=1 pero el proceso para crearlo es un poco infernal y entretenido. Una vez creado se sube :



Para ver cómo crearlo mirad en https://api.developer.betfair.com/se...28bot%29+login

Nos queda el más simple, el Interactive Login sobre el API Endpoint.

Lo primero que necesitamos es un AppKey , que será el identificador de aplicación.

El problema es que para generarlo necesitamos un SessionToken o token de sesión, que tal y como está la documentación ahora, con las herramientas de Betfair no va.

Así que por orden:

1) Entrad en www.betfair.es con vuestro usuario y contraseña con Chrome

2) Botón derecho, "Inspeccionar elemento". Aparece una ventana abajo o a la derecha con las herramientas para desarrolladores.

3) En la pestaña de "Resources" vais a "Cookies" y seleccionáis "uk-api.betfair.es"

4) Bajando veréis una variable llamada "ssoid", ese es vuestro SessionToken.

Ojo, el SessionToken cambia cada vez que os conectáis, así que es importante que lo actualicéis en las llamadas posteriores, si no dará error.




5) Armados con ese SessionToken nos vamos al Accounts API Demo tool de Betfair: https://developer.betfair.com/exchan...unts-api-demo/

Con el EndPoint UK , elegimos "createDeveloperAppKeys", primera opción de la izquierda, damos un nombre a nuestra aplicación, y pulsamos Execute. Ya tenemos un AppKey. Tomamos el que sale en la columna "Application Key" para la version "1.0" (no el que pone DELAY).





Ahora que tenemos un sessionTokey y un AppKey, podemos ya operar con el API.

Podemos irnos por ejemplo a la herramienta de demo de Betfair en https://developer.betfair.com/exchan...ting-api-demo/

Rellenamos arriba AppKey y SessionToken y podemos probar todas las funciones:

1) Listamos todos los tipos de eventos con "listEventTypes"



2) Listamos todas las competiciones de tenis (según la respuesta anterior, es el tipo de competición 2) poniendo un 2 en "event Type Ids"



3) Listar todos los partidos de tenis (recordemos, eventos tipo 2)



4) Vemos todos los mercados por ejemplo del Wozniacki-Kuznetsova:



5) Con ListMarketBook podemos ver ya los datos de selecciones, cuotas, dinero, etc.




También podemos acceder vía el interfaz y recoger toda esta información en JSON. Para ello, por ejemplo si tenemos curl instalado pues es simple.

1) Con nuestra AppKey necesitamos un SessionToken y lo obtenemos con esta instrucción:

Código PHP:
curl ---"Accept: application/json" -"X-Application: NUESTRO_APP_KEY" -X POST -'username=USUARIOBETFAIR&password=PASSWORDBETFAIRhttps://identitysso.betfair.es/api/login 
La respuesta será:

Código PHP:
HTTP/1.1 200 OKContent-Typeapplication/jsonContent-Length115DateThu05 Nov 2015 12:16:34 GMT
{"token":"NUESTRO_SESSION_TOKEN","product":"NUESTROAPPKEY","status":"SUCCESS","error":""
Con ese Session Token ya podemos seguir pidiendo cosas. Por ejemplo, replico la primera llamada de las anteriores, una llamada a listEventTypes para ver los deportes que tiene disponibles Betfair

Código PHP:
curl --X POST --header "Accept: application/json" --header "Content-Type: application/json" --header "X-Application: NUESTRO_APP_KEY" --header "X-Authentication:   NUESTRO_TOKEN_DE_SESION"  --data "[{ \"jsonrpc\": \"2.0\", \"method\": \"SportsAPING/v1.0/listEventTypes\", \"params\": {\"filter\":{}}, \"id\": 1}] " https://api.betfair.com/exchange/betting/json-rpc/v1 
Y la respuesta será un JSON con los deportes y su número de mercados:

Código PHP:
[  
   {  
      
"jsonrpc":"2.0",
      
"result":[  
         {  
            
"eventType":{  
               
"id":"468328",
               
"name":"Handball"
            
},
            
"marketCount":14
         
},
         {  
            
"eventType":{  
               
"id":"1",
               
"name":"Soccer"
            
},
            
"marketCount":1943
         
},
         {  
            
"eventType":{  
               
"id":"2",
               
"name":"Tennis"
            
},
            
"marketCount":81
         
},
         {  
            
"eventType":{  
               
"id":"3",
               
"name":"Golf"
            
},
            
"marketCount":2
         
},
         {  
            
"eventType":{  
               
"id":"6422",
               
"name":"Snooker"
            
},
            
"marketCount":7
         
},
         {  
            
"eventType":{  
               
"id":"998917",
               
"name":"Volleyball"
            
},
            
"marketCount":16
         
},
         {  
            
"eventType":{  
               
"id":"6423",
               
"name":"American Football"
            
},
            
"marketCount":13
         
},
         {  
            
"eventType":{  
               
"id":"8",
               
"name":"Motor Sport"
            
},
            
"marketCount":7
         
},
         {  
            
"eventType":{  
               
"id":"7522",
               
"name":"Basketball"
            
},
            
"marketCount":163
         
}
      ],
      
"id":1
   
}

Ya sólo falta que los desarrolladores de bots se vayan actualizando a esto. Pero al menos para nuestras apps se puede empezar a plantear desarrollos.