首页 > 解决方案 > 使用 App 脚本在 Google Drive 中创建“打开方式...”外部链接

问题描述

我正在尝试application/vnd.google-apps.drive-sdk通过我的附加组件的应用脚本在 Google Drive(mime 类型)中创建一个外部链接。端到端目标是创建此文件,将 id 发送到外部服务(我的服务),这样,当我的用户在 Google Drive 中单击此文件上的“打开方式...”时,它将发送到我的服务以及state参数(包含fileId),我可以用它做正确的事情(TM)。

出于某种原因,我似乎无法DriveApp在 App Script 中使用 API 来执行此操作。代码是:

const file = DriveApp.createFile('DriveAppFile', '', 'application/vnd.google-apps.drive-sdk');

createFile调用失败并显示Error Exception: Invalid argument。据我所知,这mimeType是解释器不喜欢的参数。我明确地将内容设置为空字符串,因为application/vnd.google-apps.drive-sdk根据 Google 的文档,这是类型文件所必需的。我也尝试null了内容,但无济于事。有谁知道为什么这不起作用?

另一条信息:出于好奇,我尝试使用测试 nodeJS 应用程序执行相同的操作googleapis:v3,令人惊讶的是,一切正常。虽然它确实有效,但这对我的用户来说不是一个好的选择,因为我不想让他们 OAuth 从我的外部应用程序连接到 Google,只是为了在他们已经通过我的附加组件进行 OAuth 时执行这一操作。

标签: webgoogle-apps-scriptgoogle-drive-api

解决方案


您共享的mimeTypes文档实际上与 相关,与Drive API不同DriveApp

如果你想使用application/vnd.google-apps.drive-sdkmime 类型,我建议你按照评论中提到的方式使用它

Drive.Files.insert({title: "DriveAppFile", mimeType: "application/vnd.google-apps.drive-sdk"})

为了启用Advanced Drive Service,您必须转到Services > Add service...

添加驱动服务

笔记

  • 请务必记住,Drive 高级服务使用 Drive API v2。

  • 如果您想使用,此处DriveApp列出了支持的 mime 类型。

参考


推荐阅读