与服务帐户信息共享或检索与特定服务帐户共享的所有文档?
Getting shared with service account info or retrieve all docs shared with a specific service account?
我正在寻找方法
1) Read/retrieve 每当与特定服务帐户共享 Sheet 时共享通知
或
2) 获取与特定服务帐户共享的所有 Sheet 的列表
背景:用户复制现有的 Sheet 模板,修改其内容并与我的服务帐户电子邮件共享,以便我可以通过编程方式检索 Sheet 数据。这仍然需要用户在分享后将结果分享 link 输入到我的后台。
相反,我更喜欢使用 API 来接收类似 "shared with service account" webhook 事件的内容,或者选择读取与此服务帐户共享的所有 Sheet。
这需要 GSuite,还是有 API/webhook 来实现?
答案:
是的,您可以使用驱动器 API 检索此信息。
更多信息:
如果您作为服务帐户进行 Drive: files.list
调用,它将 return 服务帐户的 驱动器的文件。
如果您的用户正在与服务帐户共享表格,您可以通过 API 调用此方法并将 sharedWithMe
标志设置为 true 并将 mimeType
在 q
参数中设置为 application/vnd.google-apps.spreadsheet
。
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); });
}
参考文献:
我正在寻找方法
1) Read/retrieve 每当与特定服务帐户共享 Sheet 时共享通知
或
2) 获取与特定服务帐户共享的所有 Sheet 的列表
背景:用户复制现有的 Sheet 模板,修改其内容并与我的服务帐户电子邮件共享,以便我可以通过编程方式检索 Sheet 数据。这仍然需要用户在分享后将结果分享 link 输入到我的后台。
相反,我更喜欢使用 API 来接收类似 "shared with service account" webhook 事件的内容,或者选择读取与此服务帐户共享的所有 Sheet。
这需要 GSuite,还是有 API/webhook 来实现?
答案:
是的,您可以使用驱动器 API 检索此信息。
更多信息:
如果您作为服务帐户进行 Drive: files.list
调用,它将 return 服务帐户的 驱动器的文件。
如果您的用户正在与服务帐户共享表格,您可以通过 API 调用此方法并将 sharedWithMe
标志设置为 true 并将 mimeType
在 q
参数中设置为 application/vnd.google-apps.spreadsheet
。
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); });
}