0

我正在开发一个 UWP Windows 10 应用程序,并希望在连接到我的 Raspberry Pi 的屏幕上显示我的 Google 日历中的事件。问题是,Google-Calendar-API v3 不支持 UWP。

针对 UWP Windows 10 应用程序的 Google Calendar API 已经有一种解决方法 发生了一个或多个错误,但不知何故无法运行代码。我有同样的问题,评论中提到了。但是当我替换为什么var redirectURI = "pw.oauth2:/oauth2redirect"; "][" var redirectURI = "localhost/urn:ietf:wg:oauth:2.0:oob";]没有发生时。

我究竟做错了什么?还有其他方法可以将事件从我的 Google 日历获取到我的 UWP 应用程序吗?还是有类似http请求的东西?

谢谢!

4

2 回答 2

0

首先,这里有完美的指南。它一步一步地解释清楚。您也可以按照应用程序了解如何实施。现在关于您的问题;在示例应用程序中,您可以看到在没有 localhost 的情况下使用了重定向 url。它应该如下所示。您可以urn:ietf:wg:oauth:2.0:oob:auto改用urn:ietf:wg:oauth:2.0:oob不同之处在于自动关闭浏览器并返回。另一种,代码需要手动复制。最重要的是在谷歌控制台中,当您创建新的身份验证凭据时,您必须选择 Ios,如下所示。否则你不能使用urn:ietf:wg:oauth:2.0:oob:auto. 这对我来说就像一个魅力。

在此处输入图像描述

var googleUrl = new System.Text.StringBuilder();             
            googleUrl.Append("https://accounts.google.com/o/oauth2/auth?client_id="); 
            googleUrl.Append(Uri.EscapeDataString("your client it")); 
            googleUrl.Append("&scope=openid%20email%20profile"); 
            googleUrl.Append("&redirect_uri="); 
            googleUrl.Append(Uri.EscapeDataString("urn:ietf:wg:oauth:2.0:oob:auto")); 
            googleUrl.Append("&response_type=code"); 
            googleUrl.Append("&include_granted_scopes=true"); 
于 2018-06-10T23:52:48.100 回答
0

首先,适用于 .NET 的 Google API 客户端库目前还不支持 UWP。通过 REST API 是适合您的正确解决方法。

WebAuthenticationBroker如果您在UI上收到以下异常,

我们现在无法连接到您需要的服务。检查您的网络连接或稍后再试

这与上面线程的评论中提到的相同,您需要对 Web 身份验证代理 API 进行故障排除以查找内部原因。您可以使用 . 查看操作日志并查看 Web 请求和响应Fiddler。具体操作方法请参考本教程

或者您也可以尝试使用OAuth for Apps: Windows Samples测试您的请求。此示例演示如何使用 OAuth 2.0 授权请求打开用户的浏览器,而无需使用WebAuthenticationBroker. 在这种情况下,您可以知道您是否可以直接使用浏览器成功登录。如果有任何问题,您还可以在浏览器中看到错误。

一个常见的可能原因是导航错误,这意味着导航到您的请求 URL 时出现问题。例如,您可能会在浏览器中遇到无法连接到代理服务器错误。Use a proxy server在这种情况下,您可以尝试关闭Settings->Network->Proxy.

如果您仍然无法通过上述方式解决您的问题,请按照我提到的方式提供内部错误详细信息。例如,提供日志:

在此处输入图像描述

完整的示例请参考官方示例的场景四。

于 2018-05-10T06:07:06.063 回答