public override async Task<Tuple<bool, string>> CreateOAuthRequest(IOAuthParams requestParams)
		{
			try
			{
				var response = await OAuthTicketRequest.GetOAuthTicket<OwinOAuthTicket>(requestParams, http);

				if (response != null)
				{
					App.Instance.Ticket = response;
					return new Tuple<bool, string>(true, null);
				}
			}
			catch (OAuthTicketInvalidCredentialsException otice) {
				return new Tuple<bool, string>(false, otice.Message);
			}
			catch(OAuthTicketRequestException oire) {
				Insights.Report(oire, ReportSeverity.Error);
			}
			catch(OAuthInvalidRequestException oitre) {
				Insights.Report(oitre, ReportSeverity.Error);
			}

			return new Tuple<bool, string>(false, "Login Failed");
		}
		public abstract Task<Tuple<bool, string>> CreateOAuthRequest(IOAuthParams requestParams);