web - 使用 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 时执行这一操作。
解决方案
您共享的mimeTypes
文档实际上与 相关,与Drive API
不同DriveApp
。
如果你想使用application/vnd.google-apps.drive-sdk
mime 类型,我建议你按照评论中提到的方式使用它
Drive.Files.insert({title: "DriveAppFile", mimeType: "application/vnd.google-apps.drive-sdk"})
为了启用Advanced Drive Service,您必须转到Services > Add service...
笔记
请务必记住,Drive 高级服务使用 Drive API v2。
如果您想使用,此处
DriveApp
列出了支持的 mime 类型。
参考
推荐阅读
- android - 如何将 SQLite 数据库备份到 SD 卡?
- sql - 获取每个项目的最大日期(最后销售日期)列,否?
- vue.js - 如何从 Vuex 中的突变或操作中调用共享辅助函数
- javascript - JS - 间隔后更改 HREF
- c - 如何将结构数组的每个元素传递给函数?
- mysql - 如果给定一个过程,则创建一个表
- javascript - 在 Timer 中以两位数显示小时、分钟和秒
- rest - 为支持不同 ID 的 GET 请求设计 REST 端点
- ruby-on-rails - Ruby(/Rails) 日期 - 双周和季度 DateTime 范围
- c# - 如何使用 DataContractSerializer 自定义字典序列化?