与集成最难的部分谷歌云端硬盘正在使用谷歌控制台.

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

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

它是第二例子在里面获取授权标头条目,这是我在编写附加脚本时开始的。 在脚本中你可以看到一一对应的重定向网址,客户 ID, client_secret等与您在注册的网络应用程序中具有的属性。
在附加的脚本中,我添加了一个额外的家务项目。 我希望用户体验是,授权一次,然后保存刷新令牌在本地,因此不会提示我再次登录 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 , 变成了关联数组和ParseJON . 如果您无法可视化 JSON 数据结构(我有时会这样做),我将 JSON 复制/粘贴到JSON 编辑器扩展铬。
当脚本处理返回的文件时,它会保留元数据
元数据的重要部分是文件ID . Google 在后续对 Google Drive 的文件访问中使用 fileid。 在我们的例子中,我们想要下载 .csv 和 .csv.gz 文件并在 JMP 中打开它们。 因此,脚本会遍历上一步中的 file_ids 并下载数据。

获取文件内容的关键是:
- QueryString(["alt" => "media"])
它告诉 Google Drive 将文件的内容发送回 JMP。 该脚本检查哑剧类型文件元数据中的文件,但也可以从 HTTP 请求中检查 mimeType。
在任何情况下,mimeType:
需要解压以获取 csv 内容,而 mimeType
是 csv 文件本身的内容
最后,一旦获得内容(并在需要时解压缩)
- dt = 打开(斑点,文本); //打开前无需保存到文件系统
将处理打开数据而不向系统分页
希望这个脚本足以让您在与 Google Drive 集成方面抢先一步。 我觉得这很有趣,我很感谢客户提出这个问题。
顺便说一句,如果您卡在 Google 控制台上,可以在这里提问。 我(或其他人)可能会帮忙。