【发布时间】:2022-03-09 11:36:51
【问题描述】:
背景:我正在开发的功能是将用户数据导出到 Google 文档中,该文档与我们导出的 PDF 版本完全相同,但允许更轻松地进行编辑。因为这个文件有很多复杂的表格,所以我创建了一个模板文档,每个人都可以通过链接访问,其中包含格式/样式所需的所有潜在表格,然后以编程方式调整或根据需要彻底删除。这目前通过将文件复制到用户驱动器,然后从响应中获取文件 ID 以使用 Docs API 使用 .../auth/drive 范围填充数据来实现。
我一直在为我们的应用程序开发一个替代流程,这样我们就可以避免使用允许的、受限的范围 .../auth.drive,而是使用 .../auth/drive.file 和 .../auth/drive.metadata 范围和 Google 选择器。这会尝试初始流程,然后,如果应用程序收到 403“用户未授予应用程序 APP_NUMBER_HERE 访问文件 _FILE_ID_HERE”错误,它们是一个对话框,描述用户需要点击链接来查看文件(这允许他们从他们的驱动器访问它)然后如果他们点击链接弹出谷歌选择器并要求他们选择那个文件。
一切都运行良好,但文档中提到了 .setDocument(document) 的函数 google.picker.PickerBuilder() 没有太多文档或示例(文档中的选择器构建器部分的链接:https://developers.google.com/picker/docs/reference#picker-builder)。听起来它可以让我为他们选择特定的设置,但是我无法让它工作或知道如何正确使用它。
我尝试在构建选择器对象时对其进行测试,例如:
var picker = new google.picker.PickerBuilder()
.addView(google.picker.ViewId.DOCUMENTS)
.setTitle("Please pick the <fileName> file")
// .setDocument(document) // this breaks the entire picker, creating a undefined object
.setAppId(appID)
.setOAuthToken(token)
.setDeveloperKey(devKey)
.setCallback(filePickerCallback)
.build();
picker.setVisible(true);
注意“文档”我曾尝试使用文档 ID 以及文档的 URL,但每次都会破坏选择器。
有人知道setDocument 函数的用途吗?或者如何正确使用?
【问题讨论】:
-
这似乎与stackoverflow.com/q/36022256/15384825 的帖子的第一条评论有关,该评论谈到了 PickerBuilder 上 setDocument(document) 方法的描述。
标签: google-picker