Google 드라이브 문서에서 콘텐츠를 가져올 iOS 앱을 구현 중입니다. 이 문서는 모든 클라이언트에서 동일하며 사용자 Google 계정과 완전히 구분됩니다. 자습서를 따라 Xcode 프로젝트 용 SDK를 사용하는 방법에 대한 동영상을 보았으며, API 콘솔에서 Google 드라이브 앱을 설정하고 서비스 계정을 만들었습니다. 내 문제는 여기에 클라이언트 슬라이드에서 자신의 Google 계정에 액세스하지 못하도록 단순히 사용자 계정 인증 단계를 건너 뛰고 단순히 앱 서비스 계정에 연결하는 것입니다.앱 서비스 계정을 사용하는 iOS 용 Google 드라이브 API
답변
사용자가 자신의 데이터에 액세스하더라도 사용자에게 서비스 또는 기능을 제공하기 위해 앱에서 액세스를 얻습니다. 따라서 Google은 데이터 공유에 대한 사용자 동의를 요구하고 획득해야합니다.
Google 계정의 액세스 토큰을 생성 할 수 있습니까? & 코드에 수동으로 토큰을 넣을 수 있습니까? ... https://developers.google.com/drive/web/service-accounts – Bulla
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 클리어하지 않는 토큰이 변경되지 않습니다 말한다.
iOS에서 서비스 계정을 사용하는 것이 귀하의 정보에 대해 조금 더 자세하게 설명 할 수 있습니까? 가능하지 않니? Google에서이 문제에 대해 아무 것도 찾을 수 없지만 직접 iOS SDK의 서비스 계정과 관련된 것을 찾을 수는 없습니다 ... –
java의 서비스 계정 : https://developers.google.com/identity/protocols/OAuth2ServiceAccount. 그리고 iOS에는 그런 일이 없습니다 (적어도 내가 1 년 전에 찾고있을 때). – lukas
10 월에 내 게시물을 작성한 이후로 워크 플로우를 변경했습니다. 이제 서비스 계정을 통해 Google API에 연결하는 중간 API가 있습니다. 내 Android 및 iOS 앱이 내 API에 연결됩니다. 훨씬 깔끔하고 신뢰할 수있는 방법. – lukas
나는 동일한 문제에 직면하고있다. 솔루션을 찾으면 알아낼 수 있도록 도와주세요. http://stackoverflow.com/questions/23268608/google-drive-api-login-programmatically – Bulla