我在构建可以访问Google帐户的应用时遇到问题。我有以下代码获取Google帐户的页面的登录信息,然后还会显示访问权限页面!。点击“允许访问”后,应用会重定向到错误页面。这里有一些截图,以便无论谁想要帮助都可以更好地理解..以下是使用的代码
private void browseGoogle_Loaded(object sender, RoutedEventArgs e)
{
string address = "https://accounts.google.com/o/oauth2/auth" +
"?client_id=" + "*******.apps.googleusercontent.com" +
"&scope=" + "https://www.googleapis.com/auth/plus.me" +
"&response_type=code" +
"&redirect_uri=" + "https://www.****.com/oauth2callback";
browseGoogle.Navigate(new Uri(address, UriKind.Absolute));
}
https://accounts.google.com/o/oauth2/approval?as=634f855389bf10ff&hl=en_GB&xsrfsign=APsBz4gAAAAAUHZvwB3xTqisyv8hEcWem5X3eKvwAHN9 这是在选择/单击允许访问后导航到的URI。这是什么意思?
这就是我正在做的事情。我的BrowserNavigated方法目前不包含任何代码。我不知道该怎么做。寻求帮助。 请帮我解决这个问题..所有答案和建议都表示赞赏。
答案 0 :(得分:2)
答案 1 :(得分:2)
private void browseGoogle_Loaded(object sender, RoutedEventArgs e)
{
try
{
StringBuilder autheticateURL = new StringBuilder();
autheticateURL.Append(GmailSettings.AuthorizeUri).Append("?client_id=").Append(GmailSettings.clientID).Append("&scope=").
Append(GmailSettings.ScopeValue).Append("&response_type=code").Append("&redirect_uri=").Append(GmailSettings.CallbackUri);
browseGoogle.Navigate(new Uri(autheticateURL.ToString(), UriKind.Absolute));
}
catch (Exception ex)
{
Logger.log(TAG, "browseGoogle_Loaded()", ex.Message);
}
}
/// <summary>
/// Called when the web browser initiates Navigation to various pages
/// </summary>
/// <param name="sender">Browser</param>
/// <param name="e">Navigating event arguments</param>
private void browseGoogle_Navigating(object sender, NavigatingEventArgs e)
{
try
{
string hostName = e.Uri.Host;
string URL = e.Uri.ToString();
if (hostName.StartsWith("localhost"))
{
NavigationService.Navigate(new Uri("/HomePage.xaml", UriKind.Relative));
}
}
catch (Exception ex)
{
Logger.log(TAG, "browseGoogle_Navigating()", ex.Message);
}
}
XAML就像这样
<phone:WebBrowser x:Name="browseGoogle" Loaded="browseGoogle_Loaded" IsScriptEnabled="true" Navigating="browseGoogle_Navigating" />
我的错误是两个: - 1)正如vignesh在他的评论中提到的,我使用了错误的重定向URI。 2)在我的Web浏览器控件中根本没有设置IsScriptEnabled。一旦我设置了它,一切都很好。