3

我正在实现一个 iOS 应用程序,该应用程序将从 Google Drive 文档中提取内容。该文档对于每个客户都是相同的,并且与用户的 Google 帐户完全分开。我按照教程观看了有关如何将 SDK 用于 Xcode 项目的视频,我还在 API 控制台上设置了一个 Google Drive 应用程序并创建了它的服务帐户。我的问题是如何在客户端幻灯片上跳过用户身份验证步骤以防止访问他们自己的 Google 帐户并简单地连接到应用服务帐户。

4

2 回答 2

2

在 Java (Android) 中可以将 SDK 与服务帐户一起使用,但在 iOS 中则不行。我不知道为什么,我希望这会在未来改变。

目前,以编程方式登录到将充当服务帐户的应用程序 google 帐户的唯一方法是 hacky。您需要登录您的应用程序并保存从 API 检索到的身份验证令牌。然后你可以像这样重用它:

_driveService = [[GTLServiceDrive alloc] init];

GTMOAuth2Authentication *auth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName clientID:kClientID clientSecret:kClientSecret];
[auth setKeysForPersistenceResponseString:kDriveAPIToken];
_driveService.authorizer = auth;

谷歌表示,除非达到同时有效令牌的最大数量,否则令牌不会改变,然后令牌被 FIFO 清除(最旧的有效令牌无效)。

于 2014-10-23T15:47:12.663 回答
0

即使用户正在访问他们自己的数据,您的应用程序也正在获取对它的访问权,以便为用户提供服务或功能。这使得谷歌有必要要求并获得用户同意才能共享数据。

于 2013-05-17T04:44:19.560 回答