ios - Google Drive API 与 iOS 使用应用程序服务帐户

标签 ios google-drive-api google-oauth

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

最佳答案

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

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

_driveService = [[GTLServiceDrive alloc] init];

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

Google 表示,除非达到同时有效 token 的最大数量,否则 token 不会更改,然后通过 FIFO 清除 token (最旧的有效 token 将失效)。

关于ios - Google Drive API 与 iOS 使用应用程序服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526401/

相关文章:

google-oauth - 重定向 URI 不匹配 Google OAuth 或数据库访问被拒绝

ios - SwiftUI - 如何避免导航硬编码到 View 中?

ios - 证书尚未生效

javascript - Uncaught ReferenceError : Parse is not defined

ios - Google驱动器无法通过iOS应用中的UIDocumentPickerViewController提供UTI

javascript - Google OAuth2 - 使用外部生成的访问 token - 使用 JS 客户端库

iphone - 处理RestKit身份验证挑战

ios - Youtube 限制视频播放

Android:Google Drive onActivityResult() 获取结果代码 0 (RESULT_CANCELED)

google-cloud-platform - YouTube 的 Google OAuth 验证品牌