2013-05-13 1 views
2

Google 드라이브 문서에서 콘텐츠를 가져올 iOS 앱을 구현 중입니다. 이 문서는 모든 클라이언트에서 동일하며 사용자 Google 계정과 완전히 구분됩니다. 자습서를 따라 Xcode 프로젝트 용 SDK를 사용하는 방법에 대한 동영상을 보았으며, API 콘솔에서 Google 드라이브 앱을 설정하고 서비스 계정을 만들었습니다. 내 문제는 여기에 클라이언트 슬라이드에서 자신의 Google 계정에 액세스하지 못하도록 단순히 사용자 계정 인증 단계를 건너 뛰고 단순히 앱 서비스 계정에 연결하는 것입니다.앱 서비스 계정을 사용하는 iOS 용 Google 드라이브 API

+0

나는 동일한 문제에 직면하고있다. 솔루션을 찾으면 알아낼 수 있도록 도와주세요. http://stackoverflow.com/questions/23268608/google-drive-api-login-programmatically – Bulla

답변

0

사용자가 자신의 데이터에 액세스하더라도 사용자에게 서비스 또는 기능을 제공하기 위해 앱에서 액세스를 얻습니다. 따라서 Google은 데이터 공유에 대한 사용자 동의를 요구하고 획득해야합니다.

+0

Google 계정의 액세스 토큰을 생성 할 수 있습니까? & 코드에 수동으로 토큰을 넣을 수 있습니까? ... https://developers.google.com/drive/web/service-accounts – Bulla

2

Java (Android)에서는 서비스 계정이있는 SDK를 사용할 수 있지만 iOS에서는 사용할 수 없습니다. 나는 왜 그런지 모르겠다. 나는 이것이 미래에 변하기를 바란다.

지금 서비스 계정으로 작동하는 애플리케이션 Google 계정에 프로그래밍 방식으로 로그인하는 유일한 방법은 해커입니다. 앱에 한 번만 로그하고 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의 서비스 계정과 관련된 것을 찾을 수는 없습니다 ... –

+0

java의 서비스 계정 : https://developers.google.com/identity/protocols/OAuth2ServiceAccount. 그리고 iOS에는 그런 일이 없습니다 (적어도 내가 1 년 전에 찾고있을 때). – lukas

+2

10 월에 내 게시물을 작성한 이후로 워크 플로우를 변경했습니다. 이제 서비스 계정을 통해 Google API에 연결하는 중간 API가 있습니다. 내 Android 및 iOS 앱이 내 API에 연결됩니다. 훨씬 깔끔하고 신뢰할 수있는 방법. – lukas