2013-05-13 110 views
2

我正在实施将从Google云端硬盘文档中提取内容的iOS应用。这份文件对于每个客户都是一样的,并且完全与用户Google帐户分开。 我遵循教程并观看了关于如何使用SDK进行Xcode项目的视频,我还在API控制台上设置了Google驱动器应用程序并创建了其服务帐户。我的问题在于,在客户端幻灯片中,如何跳过用户身份验证步骤来阻止访问他们自己的Google帐户,并简单地连接到应用服务帐户。使用应用服务帐户的iOS版Google Drive API

+0

我面临同样的问题。如果你找到解决方案,请帮我弄清楚.. http://stackoverflow.com/questions/23268608/google-drive-api-login-programmatically – Bulla 2014-04-25 09:29:51

回答

0

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

+0

我们可以生成我们的谷歌帐户的访问令牌?无论如何都要在代码中手动添加该令牌... https://developers.google.com/drive/web/service-accounts – Bulla 2014-04-25 09:28:23

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(最老的有效凭证无效)清除。

+0

您能详细阐述一下您的信息:在iOS中使用服务帐户是不可能?我无法在Google上找到有关此问题的任何内容,但我无法在iOS SDK中找到与自己的服务帐户有关的任何内容... – 2015-04-30 08:25:40

+0

对于java中的服务帐户:https://developers.google.com/identity /协议/ OAuth2ServiceAccount。 iOS上没有这样的东西(至少我在1年前看过)。 – lukas 2015-04-30 12:58:38

+2

自从十月份发布我的帖子以来,我改变了我的工作流程。我现在有一个中间API,它将通过服务帐户连接到Google API。我的Android和iOS应用将连接到我的API。这种方式更清洁可靠。 – lukas 2015-04-30 13:00:48

相关问题