0

Upon running the program I am redirected to sign in with xero. Once I sign in I am able to choose an organization to allow access to the app

Upon clicking allow access I get redirected to the default "This site can't be reached" error page.

If I look at the console output when I click the button, for a few seconds an "uncaught reference error: fbq is not defined" is shown. Unfortunately it goes away before I can click on it.

Here is some of the relevant code:

void LoginToXero()
{
    var xeroLoginUri = XeroService.GetLoginUri();
    OpenBrowser(xeroLoginUri);
    var listener = new HttpListener();
    listener.Prefixes.Add(XeroService.CallbackUri);
    listener.Start();
    Console.WriteLine("Waiting for the browser to callback from Xero login page...");//Logs
    var context = listener.GetContext();//Does not progress past here
//...
}


public static class XeroService
{
    public static string CallbackUri => "xxxxxxxxxxxxx";

    static string xeroState = Guid.NewGuid().ToString();
    static string oAuth2Token = "";
    static XeroClient xeroClient = new XeroClient(new XeroConfiguration
    {
        ClientId = "XXXXXXXXXXXXXX",
        ClientSecret = "XXXXXXXXXXXXXXXXXXXX",
        Scope = "openid payroll.employees",
        CallbackUri = new Uri(CallbackUri)
    });

    public static string GetLoginUri()
    {
        xeroClient.xeroConfiguration.State = xeroState;
        return xeroClient.BuildLoginUri();
    }


}

Please note all sensitive data has been replaced by "XXXXXXXXX"

I have tested both localhost callback URI's (with specified ports) and custom ones that redirect to localhost via the host file on my machine

I have also tried running it on Windows 11 and Windows 10, both with the firewall enabled and then with it disabled

Any help would be greatly appreciated

1 Answers1

-1

The problem was that the listener and the App was set up for https, changing it to http and making sure there was an explicit port resolved the issue