我正在尝试使用goodreads登录。 我正在调用WebAuthenticationBroker,它会打开一个叠加层来登录。这个到目前为止有效,但我无法在登录后关闭叠加层。我也没有取得成功。在使用backarrow时,我得到一个" UserCanceled"结果
这是我到目前为止所得到的:
string goodreadsURL = "https://www.goodreads.com/oauth/authorize?oauth_token=" + Properties.OAuth_token;
Uri sid = WebAuthenticationBroker.GetCurrentApplicationCallbackUri();
string callbackURL = sid.ToString();
var startUri = new Uri(goodreadsURL);
WebAuthenticationResult result = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, startUri, new Uri(callbackURL));
if (result.ResponseStatus == WebAuthenticationStatus.Success && !result.ResponseData.Contains("&error="))
{
[...]
}
我发现了一个类似的问题Cannot get Facebook single signon with windows 8.1 to work,但建议的答案对我的情况不起作用。
有什么想法吗?
答案 0 :(得分:1)
我认为这可能表示OAuth回调网址没有被导航到代码中,而且似乎没有指定。您可能需要添加它。试试这个:
string goodreadsURL =
"https://www.goodreads.com/oauth/authorize?oauth_token=" + Properties.OAuth_token;
Uri sid = WebAuthenticationBroker.GetCurrentApplicationCallbackUri();
string callbackURL = sid.ToString();
var startUri =
new Uri(goodreadsURL + "&oauth_callback=" + Uri.EscapeDataString(callbackURL));
WebAuthenticationResult result =
await WebAuthenticationBroker.AuthenticateAsync(
WebAuthenticationOptions.None,
startUri,
new Uri(callbackURL));
if (result.ResponseStatus == WebAuthenticationStatus.Success &&
!result.ResponseData.Contains("&error="))
{
[...]
}
检查提及回调的文档: https://www.goodreads.com/api/documentation