google-sheets - 与服务帐户信息共享或检索与特定服务帐户共享的所有文档?
问题描述
我正在寻找一种方法
1) 每当与特定服务帐户共享工作表时读取/检索共享通知
或者
2)获取与特定服务帐户共享的所有表格的列表
背景:用户复制现有的工作表模板,修改其内容并与我的服务帐户电子邮件共享,以便我可以以编程方式检索工作表数据。这仍然需要用户在共享后将生成的共享链接输入到我的后端。
相反,我更喜欢使用 API 来接收类似“与服务帐户共享”的 webhook 事件或读取与此服务帐户共享的所有表格的选项。
这是否需要 GSuite,或者是否有 API/webhook 来实现这一点?
解决方案
回答:
是的,您可以使用 Drive API 检索此信息。
更多信息:
如果您以Drive: files.list
服务帐户的身份拨打电话,它将返回服务帐户驱动器的文件。
如果您的用户正在与服务帐户共享表格,您可以通过对该方法进行 API 调用并将sharedWithMe
标志设置为 true 并在参数中mimeType
设置为来检索它们。application/vnd.google-apps.spreadsheet
q
JavaScript 示例:
function execute() {
return gapi.client.drive.files.list({
"q": "sharedWithMe and mimeType = 'application/vnd.google-apps.spreadsheet'"
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error", err); });
}
参考:
推荐阅读
- android - 如何在更改 Activity 时保存 Intent 数据
- java - 通过参数将值传递给我的程序是什么意思?
- flutter - Flutter 导航栏不随主题变化
- pyspark - 如何结合条件 PySpark 的 2 个数据帧
- javascript - 使用 react-input-slider 时 React event.target.value 返回 undefined
- python - CIFAR-10 在 Keras 上使用 MobileNet/VGG16 的准确度不能超过 10%
- oracle - 在 FOR 循环中使用 WITH FUNCTION 时出现问题
- python - 为什么我得到 KeyError: 0
- scala - 如何在隐式中实现使用站点差异?
- sql - Postgres:从时间戳中分组平均值