0

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 メソッドにはコードが含まれていません。私はさらに何をすべきかわからないので、助けを求めています。この問題の解決を手伝ってください..すべての回答と提案に感謝します。

4

2 に答える 2

2

ここでGDrive オープンソース アプリケーション コードを確認してください。

Authorization ViewViewModelは、Google 資格情報を使用して OAuth サインインを行う方法を示しています。

コードをダウンロードし、サイトでビルド前の説明を読み、テストしてください!

于 2012-10-11T10:14:35.380 に答える
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" />

私の間違いは 2 つでした:- 1) vignesh がコメントで述べたように、私は間違ったリダイレクト URI を使用していました。2) Web ブラウザ コントロールで IsScriptEnabled がまったく設定されていませんでした。true に設定したら、すべて問題ありませんでした。

于 2012-10-11T10:45:26.213 に答える