【问题标题】:When using the Google Picker, what does the .setDocument(document) do/used for?使用 Google Picker 时,.setDocument(document) 有什么作用/用途?
【发布时间】: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 函数的用途吗?或者如何正确使用?

【问题讨论】:

标签: google-picker


【解决方案1】:

由于gapi是闭源产品,官方正确的答案只有问谷歌才能得到。

我知道的一件事是,DefinitelyTyped 具有 Google Picker API 的类型定义,您可以使用它:

npm i -D @types/google.picker

根据this definitionsetDocument 采用Document 类型的参数,即document,如document.write。 这表明此功能不是您正在寻找的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多