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

2024-02-09

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


在 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;

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Drive API 与 iOS 使用应用程序服务帐户 的相关文章

随机推荐

  • 如何在 Visual Studio 中将编程文本注入到我的编码 UI 测试中(而不是录制的文本)?

    记录器可以很好地快速完成一些步骤 但我需要能够存储和设置任意文本 假设我生成了一个名为 Admin001 的新管理员用户 我希望能够将控件的文本设置为 Admin001 而不是我第一次使用生成器时记录的任何内容 我知道你可以将数据绑定到 C
  • https 之后的 Spring 启动:配置为侦听端口 8444 的 Tomcat 连接器无法启动。

    我按照指南在 Spring Boot 中启用 https 该应用程序之前正在处理https 本地主机 8080 https localhost 8080 我创建了一个keystore jks与我的位于同一目录中application pro
  • 如何查找cloud firestore项目的数据库id?

    我正在尝试使用 Cloud Firestore REST API 但似乎找不到项目 ID Firestore 的 REST API 仍处于测试阶段 目前我们还无法生成自己的数据库 ID 我们必须使用默认的数据库 ID 它当前是以下 明显的文
  • 如何将 Selectize.js 多重选择输入字段设置为始终为单行?

    我有一个 Selectize js 多输入字段 它具有固定的高度和宽度 当我选择多个值时 该字段会将所选值放入多行中 从而对用户隐藏以前的值 有什么方法可以强制 selectize 始终将值放在一行中而不进入新行 我也遇到了这个问题 最终通
  • QTableView:dataChanged 事件清除正在编辑的单元格

    与一个QTableView and QAbstractTableModel 当模型发出dataChanged正在编辑的单元格的事件 用户在单元格中键入的字符串 但未按 Enter 键 提交 编辑 将被删除 Example 单击一个单元格 输
  • 我想要 Runtime.getRuntime().exec() 的实时输出

    public static void executeCommand String cmd try Process process Runtime getRuntime exec cmd null new File usr hadoop 0
  • Ruby - 将格式化日期转换为时间戳

    我需要将日期字符串转换为 Unix 时间戳格式 我从 API 获取的字符串如下所示 2015 05 27T07 39 59Z with tr i get 2015 05 27 07 39 59 这是一种非常常规的日期格式 尽管如此 Ruby
  • python.exe fastcgi进程意外退出

    我有一些原因不得不使用django在 Windows 机器上 我想知道如何配置django on a windows sesrver 2012 r2 with iis 8 5 所以我按照教程进行操作here http blog mattwo
  • 如何在运行时获取JUnit 4中的测试用例名称? [复制]

    这个问题在这里已经有答案了 我想在执行 JUnit 测试时进行一些日志记录 在 JUnit 3 x 中 无论测试用例如何实例化 获取当前运行的测试用例的名称总是很容易 public void testFoo throws Exception
  • 如何编组/解组 ContentValues 以将泛型类型插入 ContentProvider?

    我想将通用 POJO 放入 ContentValues 中并在 ContentProvider 中解组它 我一直在绞尽脑汁地思考 Parcelables ContentValues 和插入 SQLite 关于 http njzk2 word
  • Android 推荐跟踪不适用于 Google Play

    我正在尝试实施对 Google Play 下载的推荐跟踪 在上传到 Google Play 之前 当我尝试使用下面的脚本测试应用程序时 它工作正常 并且我收到了推荐字符串 adb shell am broadcast a com andro
  • vml剪贴蒙版

    我正在尝试在 VML 中创建一个剪贴蒙版 它对应于clip path在 SVG 中 那可能吗 基于我尝试绘制形状的大量但相当有限的示例
  • 二进制字节数组加 1

    我试图将 1 添加到包含二进制数的字节数组中 它适用于某些情况 但不适用于其他情况 我无法将数组转换为整数并向其加一 我正在尝试对数组中的数字进行加法 如果有人可以请指出我在哪里搞砸了 有效的测试用例 1111 0 11 编辑 我明白如何在
  • 无需 RStudio 将 Rmarkdown 转换为 PDF

    我想转换一个 Rmd记录为 PDFwithout rstudio questions tagged rstudio可用 目前的方法 当前的方法遵循以下步骤 Rmd文件被传递到knitr knit input report Rmd 得到的md
  • Firestore 安全规则仅允许特定字段[重复]

    这个问题在这里已经有答案了 我正在尝试实施安全规则来限制用户只能访问文档中的特定字段 我的数据结构是这样的 document name John dob 1994 email email protected cdn cgi l email
  • 拖放文件属性为只读

    我创建了一个附加属性 它注册拖放事件并请求操作 移动 链接 复制 UIElement dragablecontrol d as UIElement if dragablecontrol null dragablecontrol AllowD
  • 本机 int 类型和 numpy.int 类型有什么区别?

    您能否帮助理解本机 int 类型和 numpy int32 或 numpy int64 类型之间的主要区别 如果有 有几个主要区别 首先 Python 整数的大小是灵活的 至少在 Python 3 x 中 这意味着它们可以增长以容纳任意数量
  • 使用Java从网页中提取数据?

    我正在尝试用 Java 编写我的第一个程序 目标是编写一个程序来浏览网站并为我下载文件 但是 我不知道如何使用Java与互联网交互 谁能告诉我要查找 阅读哪些主题或推荐一些好的资源 最简单的解决方案 不依赖于任何第三方库或平台 是创建一个指
  • 自定义元素是否有效 HTML5?

    我一直无法找到自定义标签在 HTML5 中是否有效的明确答案 如下所示
  • Google Drive API 与 iOS 使用应用程序服务帐户

    我正在致力于实现一个 iOS 应用程序 该应用程序将从 Google Drive 文档中提取内容 该文档对于每个客户来说都是相同的 并且与用户的 Google 帐户完全分开 我按照教程观看了有关如何将 SDK 用于 Xcode 项目的视频