Xbox One上的谷歌登录问题c# - GoogleWebAuthorizationBroker.AuthorizeA

本文关键字:GoogleWebAuthorizationBroker AuthorizeA 问题 登录 One 谷歌 Xbox | 更新日期: 2023-09-27 18:01:26

这段代码在我的UWP应用程序中运行在Windows 10桌面/移动设备上时运行良好,但在Xbox One上我得到一个错误:

我的c#代码:
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
             new Uri("ms-appx:///Assets/client_secrets.json"),
             new[] { "https://www.googleapis.com/auth/plus.profile.emails.read" },
             "user",
             CancellationToken.None);                
return credential.Token.AccessToken;

下面是正在发生的步骤:

  1. 点击google login btn
  2. google登录屏幕正在加载
  3. 我可以登录我的google账号
  4. 登录窗口要求我授权应用程序的权限
  5. 错误发生在这里:我从来没有得到Oauth令牌,得到以下错误消息:错误:"Success",描述:" WebAuthenticationBroker没有返回代码或错误。"细节:0",Uri: "

有人有这个问题吗?

我的项目。json文件:

{
  "dependencies": {
    "Google.Apis": "1.15.0",
    "Google.Apis.Auth": "1.15.0",
    "Google.Apis.Core": "1.15.0",
    "Microsoft.ApplicationInsights": "2.1.0",
    "Microsoft.ApplicationInsights.PersistenceChannel": "1.2.3",
    "Microsoft.ApplicationInsights.WindowsApps": "1.1.1",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
    "Microsoft.Xaml.Behaviors.Uwp.Managed": "1.1.0",
    "MvvmLightLibs": "5.3.0",
    "Newtonsoft.Json": "9.0.1",
    "NotificationsExtensions.Win10": "14295.0.1"       
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

知道我做错了什么吗?

Xbox One上的谷歌登录问题c# - GoogleWebAuthorizationBroker.AuthorizeA

按照Franklin的建议,我使用了一个很好的老式WebAuthenticationBroker,如果有人感兴趣,这里是一段代码:

String GoogleURL = "https://accounts.google.com/o/oauth2/auth?client_id=" 
                            + Uri.EscapeDataString("ABC-DECF1234.apps.googleusercontent.com") 
                            + "&redirect_uri=" + Uri.EscapeDataString("urn:ietf:wg:oauth:2.0:oob") 
                            + "&response_type=code&scope=" + Uri.EscapeDataString("https://www.googleapis.com/auth/plus.profile.emails.read");
Uri StartUri = new Uri(GoogleURL);
Uri EndUri = new Uri("https://accounts.google.com/o/oauth2/approval?");
WebAuthenticationResult WebAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.UseTitle, StartUri, EndUri);
if (WebAuthenticationResult.ResponseStatus == WebAuthenticationStatus.Success)
       {
               return WebAuthenticationResult.ResponseData.ToString();
       }
相关文章:
  • 没有找到相关文章