He comenzado por analizar la API de BBVA. Con el siguiente código he conseguido acceder a las cuentas de un usuario de ejemplo que pone BBVA para hacer pruebas :
- Code: Select all Expand view RUN
- local oHttp, cCadena, cNomObjOLE := "Microsoft.XMLHTTP", cToken := '', ;
cURL := "https://apis.bbva.com/business-accounts-sbx/v1/statements/aeb43"
oHttp:Open ( "GET" , cUrl, .f. )
oHttp:SetRequestHeader ( "Content-Type", "application/json")
oHttp:SetRequestHeader ( "Accept", "application/json")
oHttp:SetRequestHeader ( "Authorization", cToken )
oHttp:SetRequestHeader ( "Host", "apis.bbva.com" )
try
oHttp:Send ()
catch
? 'Error en Send'
return .t.
end
cCadena := oHttp:responseText
En este ejemplo no he incluido cToken y es donde tengo el problema. Para obtener un token de acceso válido el sistema se basa en oAuth (Three Legged Access). La siguiente información aparece en la BBVA API_Market para obtener el token de acceso :
GET /token/authorize
This endpoint is invoked by a web browser redirection (it requires user interaction). It redirects to the login page, and then shows the scopes approval page. At the end of this flow, this endpoint returns to the redirect_url configured for the associated application, with an authorization_code attached.
This endpoint issues a web browser redirection to the BBVA Connect login page. If necessary, also shows the scope approval page. Finally, another web browser redirection is made to the application’s redirect_uri, attaching a query parameter with the Authorization Code.
With that authorization_code and application’s credentials ( appid + client_secret ), the application must invoke the token endpoint to obtain a valid _SecurityToken.
If there is not any scope specified in the request, the scope of this Security_Token will be the default scope or scopes for each application.
This endpoint returns the access tokens for grant types client_credentials, authorization_code and refresh_token.
Según indican en la información al consumir el servicio con un GET el sistema redirige a una página para que el usuario se identifique y a continuación se pasa el control a una uri de mi aplicación Web. Como estoy intentando acceder desde mi programa de escritorio no sé cómo acceder a la página de identificación y recuperar la respuesta con el token de acceso.
Espero haberme explicado o por lo menos si hay alguien en el foro que haya conseguido acceder a API bancarias y me pudiera echar una mano.
Gracias.