Google drive api 使用谷歌硬盘';s API如何将共享的google drive文件同步到另一台服务器?

Google drive api 使用谷歌硬盘';s API如何将共享的google drive文件同步到另一台服务器?,google-drive-api,google-oauth,Google Drive Api,Google Oauth,我想访问我自己的谷歌硬盘,并将其文件同步到我的服务器。例如,对于我们的办公室来说,集体编辑和在驱动器上添加文件很容易,如果我可以在服务器上获取文件,我希望在我们的网页上使用它们。我知道我可以使用文件id访问单个文件,但我需要查看父“文件夹”(驱动器中的文件)的全部内容,然后从那里开始 这似乎需要Oauth或类似的工具,但如果它是一个公共共享文件夹,而我不想访问用户驱动器(对,我正在访问自己的驱动器),我就不知道该怎么做。任何帮助都将不胜感激 您可以使用 样本来自 或者,您可以使用Google应用

我想访问我自己的谷歌硬盘,并将其文件同步到我的服务器。例如,对于我们的办公室来说,集体编辑和在驱动器上添加文件很容易,如果我可以在服务器上获取文件,我希望在我们的网页上使用它们。我知道我可以使用文件id访问单个文件,但我需要查看父“文件夹”(驱动器中的文件)的全部内容,然后从那里开始

这似乎需要Oauth或类似的工具,但如果它是一个公共共享文件夹,而我不想访问用户驱动器(对,我正在访问自己的驱动器),我就不知道该怎么做。任何帮助都将不胜感激

您可以使用

样本来自

或者,您可以使用Google应用程序脚本创建一个rest api来返回文件信息

示例代码:

function GetFiles() {

var result = [];

var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  var fileInfo = new Object();
  fileInfo.id = file.getId();
  fileInfo.name = file.getName();
  fileInfo.size = file.getSize();
  fileInfo.url = file.getDownloadUrl();
  result.push(fileInfo);
}
  return result;
}
上面的代码返回包含文件id、名称、大小和下载url的对象列表

希望这能有所帮助。

我没有试图访问用户驱动器(对,我正在访问自己的驱动器)。

但是 1/谷歌怎么知道是你? 2/谷歌如何知道该应用程序是您授予权限的应用程序

这两个问题的答案都是OAuth,假设您希望使用应用程序访问文件

因此,你的应用程序的伪代码看起来像。 -获取访问令牌 -使用该访问令牌获取父文件夹。保存它的ID
-使用父文件夹的ID获取其所有子文件夹的内容

,Oauth有什么问题?你有你的证件。如果你制作一个应用并注册它,然后给它访问你的驱动器的权限,你应该能够使用Oauth让应用得到你想要的。所以也许你应该解释清楚,问题是什么?你的问题是如何在没有oauth的情况下使用api,因为它是一个公用文件夹?我可能只是没有正确理解它。但我认为Oauth原样,或者像google的例子所解释的那样,应该检查哪个用户正在访问系统,一旦他们允许访问,就会根据凭证生成一个新的令牌。“因为是服务器对服务器的,所以我对这个过程是如何进行的有点茫然。”ZigMandel,不一定。我的问题是,在没有主动接受访问请求的情况下,如何使用Oauth?当我说这句话的时候,它似乎微不足道,但我在示例中没有看到任何类似的东西。此外,我可以在开发人员控制台中设置许多凭据类型,但是我不太清楚如何以这种方式使用它们。如果没有授权,这会起作用吗?那么,提供“文件”是公开共享的?不需要授权。要访问API,您需要授权。你想要的资源是公共的这一事实并不重要。由于它是您的文件,您可以轻松地进行授权。。有服务器身份验证的流程。好的,看起来不错。因为所有的树,我没有看到森林。非常感谢。是的,这是有道理的。当我在程序中执行此操作,但不点击屏幕接受访问请求时,我想我对我的应用程序应该如何识别我使用Oauth缺乏一些理解。这可能会有所帮助
function GetFiles() {

var result = [];

var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  var fileInfo = new Object();
  fileInfo.id = file.getId();
  fileInfo.name = file.getName();
  fileInfo.size = file.getSize();
  fileInfo.url = file.getDownloadUrl();
  result.push(fileInfo);
}
  return result;
}