iOS中的Google Calendar API和跨客户端授权

时间:2017-07-25 21:22:33

标签: ios google-api cross-platform google-calendar-api google-oauth

我们有一个iOS应用,使用Google oAuth通过嵌入式浏览器向用户询问Google日历的权限。用户通过应用程序登录并授予其日历的权限,oAuth授权的刷新令牌和日历ID存储在加密数据库中。 使用此刷新令牌和日历ID - 他们的日历项目将显示在单独的Web应用程序上(无需再次请求客户端凭据)。在今年4月20日嵌入式浏览器中的Google授权请求被阻止之前,这种情况很有用。在此之前,我们使用了单个oAuth客户端ID并使用了客户端ID& iOS和Web应用程序中的秘密。但是,在4月20日之后,我们不得不创建一个单独的iOS客户端密钥。现在的问题是,虽然在iOS应用程序中我们可以使用以下代码询问用户日历权限:

OIDAuthorizationRequest *request = [[OIDAuthorizationRequest alloc] initWithConfiguration:configuration clientId:GoogleCustomKey scopes:@[OIDScopeOpenID, OIDScopeProfile, OIDScopeEmail, @"https://www.googleapis.com/auth/calendar", @"https://www.googleapis.com/auth/calendar.readonly", @"https://www.googleapis.com/auth/tasks", @"https://www.googleapis.com/auth/tasks.readonly"] redirectURL:[NSURL URLWithString:GoogleRedirectUri] responseType:OIDResponseTypeCode additionalParameters:nil];

但是现在我们无法再使用Web应用程序上的刷新令牌显示用户日历。在Web应用程序中,我们得到了#34;未经授权的访问"调试Web应用程序代码时出错。但根据Google的文档,允许跨客户端授权https://developers.google.com/identity/protocols/CrossClientAuth。 我们不确定我们缺少什么?感谢。

0 个答案:

没有答案