2017-02-17 43 views
0

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

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

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

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

使用API​​将是完美的,但在这一点上,我们只有链接到可用的文档。

+0

需要更多信息。它是什么类型的应用程序,一个在浏览器中运行的Web应用程序?如果文档不能被其他人访问,您希望如何获得这些信息 - 您的应用程序将不会被登录到Google文档,即使它可能与用户的凭据无关 - 也不会被拒绝访问如果是? (并且想一想,单单是否证明不足以证明它不可访问)? –

+0

此外,谷歌可能会在几天后改变实施,所以你不能依赖字符串。检查应该是谷歌驱动器公开一些API来做到这一点,而不是这个问题。 –

+0

感谢您的问题。我会更新这个问题。 – utdiscant

回答

2

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

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,}/); } 

as posted here