我正在开发一个UWP Windows 10应用程序,并希望在屏幕上显示我的Google日历中的事件,该屏幕连接到我的Raspberry Pi。问题是,Google-Calendar-API v3不支持UWP。
Google Calendar API for UWP Windows 10 Application One or more errors occurred已经有了一种解决方法,但不知何故无法运行代码。我有同样的问题,评论中提到了这个问题。但当我将var redirectURI = "pw.oauth2:/oauth2redirect"; "]
替换为[" var redirectURI = "localhost/urn:ietf:wg:oauth:2.0:oob";]
时,没有任何事情发生。
我做错了什么? 有没有其他方法可以将我的Google日历中的事件发送到我的UWP应用程序?或者是否有类似http的请求?
谢谢!
答案 0 :(得分:0)
首先,Google API客户端库目前仍不支持UWP。通过REST API,您可以使用正确的解决方法。
如果您在WebAuthenticationBroker
用户界面
我们无法立即连接到您需要的服务。检查您的网络连接或稍后再试
与上述帖子的评论中提到的相同,您需要对Web身份验证代理API进行故障排除以查找内部原因。您可以使用Fiddler
查看操作日志并查看Web请求和响应。详情请参阅this tutorial。
或者您也可以尝试使用OAuth for Apps: Windows Samples测试您的请求。此示例演示了如何使用OAuth 2.0授权请求打开用户浏览器,而不使用WebAuthenticationBroker
。在这种情况下,您可以知道是否可以直接使用浏览器成功登录。如果有任何问题,您还可以在浏览器中看到错误。
一个常见的可能原因是导航错误,这意味着导航到您的请求网址时出错。例如,您可能会使用浏览器无法连接到代理服务器错误。在这种情况下,您可以尝试关闭Use a proxy server
中的Settings->Network->Proxy
选项。
如果您仍然无法通过上述方式解决问题,请按照我提到的方式提供内部错误详情。例如,提供日志:
有关已完成的示例,请参阅official sample的方案4。
答案 1 :(得分:0)
首先,完美指南here。它逐步清楚地解释。您也可以按照this申请了解如何实施。
现在关于你的问题;在示例应用程序中,您可以看到重定向url在没有localhost的情况下使用。它应该如下所示。您可以使用urn:ietf:wg:oauth:2.0:oob:auto
代替urn:ietf:wg:oauth:2.0:oob
区别在于自动关闭浏览器并返回。另外,代码需要手动复制。
最重要的是在Google控制台中创建新的身份验证凭据时,您必须选择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");