【发布时间】:2015-04-07 01:33:44
【问题描述】:
您好 Google 专家和 Drive API 忍者!
我有一个具有以下流程的 Rails 应用程序:
用户提交表单
在用户的云端硬盘中创建了一个模板化的 Google 文档
该文档与其他用户共享
该文档已添加到其他用户的驱动器中
直到最后一步,一切都很好,这让这张不起眼的海报充满了悲伤。在我看来,我的应用程序应该能够调用drive.parents.insert,其中我传递了创建时存储的fileId(由用户)和其他用户所需文件夹的folder_id。可悲的是,调用drive.parents.insert(甚至drive.files.get)返回的状态为404 - 找不到文件。这很糟糕,因为其他用户可以通过 https://docs.google.com/document/d/#{fileId} 访问该文档,并且可以使用 Drive GUI 提供的“添加到我的驱动器”按钮从“与我共享”选项卡手动将文件添加到他们自己的驱动器。
那么,亲爱的读者,我的理解差距在哪里?我必须先调用drive.files.insert 或其他Drive API 方法吗?如果是这样
1) 我应该使用属于用户或其他用户的新身份验证令牌来授权我的请求吗?
2) 如果我应该使用drive.files.insert,那么为现有文档声明插入的media 部分的正确方法是什么? (media = Google::APIClient::UploadIO...???)
我很乐意根据要求提供额外的详细信息,尽管我怀疑这个问题是我的概念性问题......
最好的,
-B
编辑:
创建文档的用户可以获取文件;创建文件夹的其他用户可以获取该文件夹;我如何使这些收支平衡,以便用户可以将他的文件(与其他用户共享)添加到其他用户的文件夹中,或者其他用户可以将用户的文件(在其上共享)添加到他的文件夹中。再次感谢您的关注。
【问题讨论】:
-
没有看到代码,猜测是404指的是文件夹。 “另一个用户”是否与“一个用户”共享文件夹? PS。可能值得将您的问题编辑给用户 A、用户 B 等,并清楚哪个用户看到了错误。
-
感谢pinoy的回复!据我所知,我的问题的解决方案是范围“googleapis.com/auth/drive.file”不足以将文档从“与我共享”文件夹移动到“我的驱动器”——一旦我添加了“googleapis.com/auth/drive”和'googleapis.com/auth/drive.appdata' 到我的 oAuth 范围内,事情开始落实到位。我希望我可以提供一些文档的有用链接,但是唉...
-
如果可能的话,如果你能发布一个答案,那就太好了,因为我相信这是一个并不少见的情况。 Drive.file 是首选范围,因此了解其局限性总是有用的。
标签: ruby-on-rails-4 google-drive-api