整合最困难的部分谷歌云端硬盘正在使用创建一个网络应用程序谷歌控制台。

很好有记录的。
然而,由于访问 Google Drive 所需的范围比说的更敏感, JMP 的 Google 表格集成,从 JMP 17 开始,与 Google Drive 的集成目前不是 JMP 的一部分。
话虽这么说,我最近遇到了一位 JMP 用户JMP发现那就是收集数据并将其存储在 Google Drive 上。 数据格式为数据集出于多种原因,但主要是由于 Google Sheet 的限制。 他说,如果他能够定期将 csv 数据输入 JMP 以便进行分析,他(以及他的同事)的生活会更轻松。 他知道他可以下载 csv 文件然后将其导入 JMP,但他实际上正在寻找“简单按钮”。
因此,我去查看了 Google Console 上的笔记以及如何注册网络应用程序。你可以很容易地得到一个开发者(就像我一样),但谷歌会限制你的流量,除非你通过他们的验证过程。
我强烈推荐它,即使它只是一个内部应用程序。
因此,在[插入您使用 Google Console 的小时数]之后,您将拥有使用 JMP 登录 Google Drive 所需的信息。
您选择注册应用程序时使用的所有内容OAuth2授权。
请记住,由于您正在使用应用程序,因此您需要确保已启用 Google Drive API。

另一个重要的部分是范围。 范围控制用户在连接到注册的 Web 应用程序时允许的权限。 这是完全地取决于您要使用的 Google API。 例如,附加的脚本使用:
Openid 和 Profile 是“标准”的验证和授权,而其余范围则需要从您的谷歌驱动器读取和下载数据。 如果您仍在阅读,那么好消息是 JMP 脚本索引有一个通过 Google 进行身份验证的示例。

它是第二例子在里面获取授权标头条目,这是我在编写附加脚本时开始的。 在脚本中你可以看到一一对应的重定向网址,客户端_id,客户端秘密等,以及您在注册的网络应用程序中拥有的属性。
在附加的脚本中,我添加了一个额外的内务项目。 我希望用户体验是,授权一次,然后保存刷新令牌本地,这样我就不会再次提示登录 Google。 本地保存的时候是不是已加密,因此您需要将其保存在私人位置。 所附脚本使用
- $USER_APPDATA/GoogleDriveTokens.json
它的作用是从磁盘加载refresh_token(如果可用)得到一个访问令牌来自 Google 并带有refresh_token,然后你就可以了经过身份验证和授权。 脚本所做的最后一件事是将其保存回磁盘。 这新的 OAuth2()如果当前的令牌每次都过期,JSL 对象将继续获取令牌oauth2 << 获取身份验证标头()用来。 在这种情况下,每次向 Google Drive 发出请求时都会调用 Get Auth Header。
一般流程后身份验证和授权已经发生是端点

用于枚举 Google Drive 上找到的文件。 经过默认, 仅有的100返回,所以在脚本中我将其增加到1000 (最大值)。
值得注意的是,JMP 17 有
这将显示长 HTTP 请求操作的进度条。
从返回休息呼叫是JSON ,它变成了关联数组和解析JON 。 如果您在可视化 JSON 数据结构时遇到困难(我有时会这样做),我会将 JSON 复制/粘贴到JSON 编辑器扩展对于 Chrome。
当脚本处理返回的文件时,它会保留元数据
元数据的重要部分是文件编号。 Google 在随后访问 Google Drive 的文件时使用 fileid。 在我们的示例中,我们想要下载 .csv 和 .csv.gz 文件并在 JMP 中打开它们。 因此,脚本循环遍历上一步中的 file_ids 并下载数据。

获取文件内容的关键是:
它告诉 Google Drive 将文件内容发送回 JMP。 该脚本检查mime类型从文件元数据中获取文件的信息,但也可以从 HTTP 请求中检查 mimeType。
无论如何,mimeType:
需要解压才能得到csv内容,而mimeType
是 csv 文件本身的内容
最后,一旦获得内容(并根据需要解压缩)
- dt = 打开(blob,文本); //打开前无需保存到文件系统
将处理打开数据而无需分页到系统
希望这个脚本足以让您在与 Google Drive 集成方面取得先机。 我发现这很有趣,并且很感谢顾客提出这个问题。
顺便说一句,如果您在 Google Console 上遇到困难,可以在此处提问。 我(或其他人)可能可以提供帮助。