Google drive api Google Drive API使用API密钥获取AppProperties 问题:

Google drive api Google Drive API使用API密钥获取AppProperties 问题:,google-drive-api,share,google-api-nodejs-client,Google Drive Api,Share,Google Api Nodejs Client,是否可以通过未经身份验证的用户(即通过API密钥或其他方法而不是Oauth)访问Google Drive文档中的appProperties字段 背景: 我有一个应用程序,可以作为实时文档编辑器使用。它通过OAuth对用户进行身份验证,并允许用户将这些文档保存到他们的google驱动器,然后在我的应用程序中重新打开它们(google文件ID保存在我的数据库中,并将文档文本加载到我的应用程序中)。Create()-ing和Get()-ing只要用户登录,这些文件就可以正常工作,我的“appPrope

是否可以通过未经身份验证的用户(即通过API密钥或其他方法而不是Oauth)访问Google Drive文档中的appProperties字段

背景: 我有一个应用程序,可以作为实时文档编辑器使用。它通过OAuth对用户进行身份验证,并允许用户将这些文档保存到他们的google驱动器,然后在我的应用程序中重新打开它们(google文件ID保存在我的数据库中,并将文档文本加载到我的应用程序中)。Create()-ing和Get()-ing只要用户登录,这些文件就可以正常工作,我的“appProperties”字段存储了两个额外的关键元数据项

作为下一步,我希望允许用户将文档标记为“公共视图”,并提供对其文件的只读访问,即使对于未登录的用户也是如此。在我看来,流程的工作原理如下:

  • 用户_A使用OAuth进行身份验证并创建一个文档,保存到他们的google驱动器中
  • 用户_A在我的应用程序中按下一个按钮,将谷歌文档设置为公共共享模式
  • 应用程序生成一个“查看器”链接,用户可以与他的朋友共享
  • 用户_B没有Google帐户,但访问“查看器链接”,我的应用程序会查找相应的Google文档(使用API密钥?因为用户_B未登录)
  • 文档已加载到我的应用程序中以供查看
  • 这似乎主要起作用;我可以使用API键读取文件元数据,甚至可以获取文件内容旁注:考虑到“注意:授权可选”上的引用,我们为什么需要API密钥

    但是,使用API键时,“appProperties”字段始终返回空

    编辑:在进一步搜索之后,我更加困惑了。我能找到的最接近的答案是stackoverflow上的:

    这很简单Appproperties是一个私有的字段,仅可用于添加它的应用程序

    基于此,Google Drive似乎将来自我的应用程序API密钥的请求和来自我应用程序上OAuth用户的请求视为两个独立的应用程序

    此外,我希望最终允许用户在一个用户拥有的单个文档上进行协作。因此,他们可以生成一个“编辑邀请”链接,而不仅仅是提供一个只读的“查看”链接,该链接将允许一个经过身份验证的用户(用户_B现在获得一个谷歌帐户)作为授权的合作者添加到原始(用户_a)文档中(但不是同时编辑)。这可能吗

    注意,我正在使用Node.js谷歌api。

    这可能是一个bug:
    appProperties
    是附加到文件的特定于应用程序的属性。来自此应用的任何呼叫都应该能够访问它们。因此,我认为使用API键从这个应用程序调用应该能够检索这些属性

    我可以重现这种行为:
    appProperties
    在使用OAuth时填充,但在使用API键时不填充,即使两者都是从同一个GCP项目创建的

    我提交了一个bug: 在研究了这个问题之后,我认为这可能是一个bug。因此,我决定在Issue Tracker上提交一个bug:

    对于任何受此影响的人,我建议单击左上角的星号,以便跟踪此情况并帮助确定优先级

    参考:

    感谢您尝试重现这种行为。一旦谷歌回复你的bug报告,如果它确实是一个bug,我会将其标记为答案。@TrevorBuckner,不客气。该报告已在内部转发。