iOS版Google Drive API使用应用服务帐户

时间:2013-05-13 16:02:40

标签: ios google-drive-api google-oauth

我正在努力实施一个iOS应用,该应用将从Google云端硬盘文档中提取内容。对于每个客户,此文档都是相同的,并且与用户的Google帐户完全分开。 我按照教程观看了有关如何使用SDK进行Xcode项目的视频,我还在API控制台上设置了一个Google云端硬盘应用,并创建了自己的服务帐户。我的问题是,在客户端幻灯片上,如何跳过用户身份验证步骤以阻止访问自己的Google帐户,只需连接到应用服务帐户。

2 个答案:

答案 0 :(得分:2)

可以在Java(Android)中使用带有服务帐户的SDK,但不能使用iOS。我不知道为什么,我希望将来会改变。

现在,以编程方式登录到您的应用程序谷歌帐户的唯一方法是充当服务帐户是hacky。您需要在应用程序上记录一次并保存从API检索到的身份验证令牌。然后你可以像这样重复使用它:

_driveService = [[GTLServiceDrive alloc] init];

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

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

答案 1 :(得分:0)

即使用户正在访问他们自己的数据,您的应用也会获得对其的访问权限,以便为用户提供服务或功能。这使得Google必须要求并获得用户同意才能进行数据共享。