我正试图在 IOS 应用程序中授权用户使用 Google 日历 API。 我使用谷歌的 OAuth2 功能对用户进行身份验证。授权页面打开时出现了 403 错误,描述如下
该用户代理不允许向谷歌发出 OAuth 授权请求,因为它被归类为嵌入式用户代理(也称为网络视图)。根据我们的政策,只有浏览器才允许向 Google 发出授权请求。我们为本地应用程序提供了多个库和示例,以便在浏览器中执行授权请求。
我遵循了以下链接中提到的相同程序: https://developers.google.com/google-apps/calendar/quickstart/ios
与其看我的代码,不如看这个链接:https://developers.google.com/google-apps/calendar/quickstart/ios 因为我在自己的应用程序中复制粘贴了相同的内容。
下面是我的 clientId 和 keyChainItemName:
static NSString *const kKeychainItemName = @"Google Calendar API";
static NSString *const kClientID = @"954370342601-sgl8k0jrbqdeagea9v6vfu3tspte96ci.apps.googleusercontent.com";
简而言之,谷歌已经更新了 OAuth 流的安全限制。他们不允许本地网络视图启动 OAuth 流,而是鼓励人们使用操作系统浏览器来启动 OAuth 流。在这种情况下,你可能需要等待 Google 日历 SDK 更新代码,以遵从新推荐的流程。更多信息请参阅 Google 博客。
编辑:我曾尝试创建一个跨平台插件,该插件可以在 Xamarin 表单应用程序中使用本机 Google 登录 SDK。更多信息请参阅 此处。