Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
@KevinMontrose, thank you! I can finally move some old code from 1.0 without major changes, though returning all sites if no pagesize is specified would be nice.
I think the only URL outside the registered domain that is accepted is https://stackexchange.com/oauth/login_success, because it's on StackExchange it's trusted already.
With a browser control inside your application you would be able to retrieve the access token, with Firefox you can't. What your doing is unsupported so it not passing the access_token is probably because of that. If you want to get the access_token you have to let the user interact with the dialog directly.
With python isn't there a way of showing a web page inside one of your application's window? You wouldn't show the user the dialog in the users default web browser. You can then monitor that browser control for when it loads a page then get the URL that was loaded and extract the hash. My point was meant to be that the dialog is not meant to be interacted with by the application, only the user, so it maybe for that reason that the hash is being lost.
What I mean is don't log the user in through the application's interface. Just show the user the browser, and let them log themselves in. The login dialog is subject to change, there may be more login services added, or possible removed and the structure of it may change.
From your update, it seems to definitely be a bug. But you can just get an access_token using your browser the url and query parameters are in the documentation, then just copy the access_token and put it in the url your app uses. Actually it might help a bit, because if the access_token and app key don't match it will send back a different error.