【问题标题】:Determining sharing settings of Google Document by link通过链接确定 Google 文档的共享设置
【发布时间】:2017-07-06 19:21:43
【问题描述】:

在我们的应用程序中,用户可以提交指向 Google 文档的链接(来自 Google Drive)。我们希望能够检查文档是否以任何拥有链接的人都可以访问文档的方式共享。这怎么可能(最好使用 Javascript)。

这样的链接可能是:https://docs.google.com/a/peergrade.io/document/d/1_PgKkr7e4E1uEE4O_SHswq4tjBDLthg0KxGXjtIMLio/edit?usp=sharing 不与外部人员共享。

我们的应用程序正在浏览器中运行。用例是我们应用程序的学生可以提交其他人必须查看的 Google 文档。有些学生忘记事先分享他们的文档,这会导致问题。我们想提醒学生他们的文档未正确共享。

我们不需要实际访问该文档,只需确定其他人是否可以访问它。

使用 API 是完美的,但此时我们只有可用的文档链接。

【问题讨论】:

  • 这需要更多信息。它是什么类型的应用程序,在浏览器中运行的 Web 应用程序?如果其他人无法访问该文档,您将如何期望获得此信息 - 您的应用程序不会登录到 Google Docs,即使它是,大概也没有用户的凭据- 如果是,不会被拒绝访问? (想想看,仅凭这一点还不足以证明它是不可访问的)?
  • 另外,Google 可能会在几天后更改实现,因此您不能依赖字符串。检查应该是谷歌驱动器是否公开了一些 API 来做这个而不是这个问题。
  • 感谢您的提问。我会更新问题。

标签: javascript google-docs drive


【解决方案1】:

您可以使用以下请求获取文件元数据

GET https://www.googleapis.com/drive/v3/files/{FILE_ID}?fields=id%2Ckind%2CmimeType%2Cname%2Cshared&key={YOUR_API_KEY}

注意请求中的shared标签

这会给你类似的东西

{


 "kind": "drive#file",
 "id": "bla_bla_gibberish_id",
 "name": "Sample File",
 "mimeType": "application/vnd.google-apps.spreadsheet",
 "shared": true
}

现在,从链接中获取 fileID:

function getIdFromUrl(url) { return url.match(/[-\w]{25,}/); }

here发布的那样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多