Interactive login is to be used when the user is present to login (for example, 3rd Party Desktop Applications) and will manage any additional information required at login depending upon a customer's account (such as 2 Factor Authentication codes or National Identifiers).
This is achieved by embedding the Betfair IdentitySSO login page in your application and then obtaining a successful session token upon login. The keep alive operation should be called every 7 minutes if the user is still actively using your application. The embedded login page initially looks like this:
You should be able to detect the presence of a session token in the requests upon successful login for use by your application.
International users:
https: //identitysso.betfair.com/view/login?product=<theProductDescriptor>&url=<theRedirectUrl> |
Spanish jurisdiction users:
https: //identitysso.betfair.es/view/login?product=<theProductDescriptor>&url=<theRedirectUrl> |
Italian jurisdiction users:
https: //identitysso.betfair.it/view/login?product=<theProductDescriptor>&url=<theRedirectUrl> |
Name | Description | Sample |
---|---|---|
product(mandatory) | The product for which the login page is used and on which the user will do the login; This should be your application key. | "IhDSui3ODdsdwo" |
url (mandatory) | The url to which the the browser should be redirected in case of a successful login. By default, https://www.betfair.com will be allowed but further URLs can be added upon agreement with Betfair. | https://www.betfair.com |
International jurisdictions:
Spanish jurisdiction:
Italian jurisdiction:
NONE
International jurisdictions:
Spain jurisdiction:
Italian jurisdiction:
A sample client, written in C#, is available to demonstrate this process on Github. This is a C# project created under Visual Studio 2010, written against .Net 4, and is a Winforms Application.
The key steps demonstrated by this client are:
How it works
Upon start-up, the URL of the API login page is assigned to the web browser control:
//Give embedded web browser Betfair api login page URL System.Uri u = new Uri(LogonURL); |
When the web browser control receives data an event is triggered and the following function called:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //On embeded web browser response get cookie string cookie = this.webBrowser1.Document.Cookie; if (cookie != null) this.ParseCookie(cookie); //If successfull login start KeepAlive if (!m_LoggedOut && !m_KeepAliveTimer.Enabled) { webBrowser1.Visible = false; SetMessage("Logon successfull\r\n SSOID=" + m_SSOID); this.StartKeepAlive(); } } |
Upon successful login the cookie is parsed for the SSOID. The webrowser control made invisible and the SSOID displayed in a TextBox. The keep-alive timer is started
private void StartKeepAlive() { m_KeepAliveTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnKeepAliveTimer); // Set the Interval to 15 mins. m_KeepAliveTimer.Interval = 1000 * 60 * 15; m_KeepAliveTimer.Enabled = true; } |
Above the StartKeepAlive function simply starts a 15 minute timer which invokes function OnKeepAliveTimer.
OnKeepAliveTimer sends a Keep Alive message.
A message to this effect is then displayed.
Upon hitting the Logout button the following event handler is invoked:
private void btnLogout_Click(object sender, EventArgs e) { m_KeepAliveTimer.Enabled = false; m_KeepAliveTimer.Close(); m_LoggedOut = true; System.Uri u = new Uri(LogoutURL); this.webBrowser1.Url = u; this.webBrowser1.Navigate(u); SetMessage("Logged out"); } |
The keep alive timer is closed. The logout url is sent and a Logged out message is displayed.