【问题标题】:Allow users to upload files to a Google Drive service account允许用户将文件上传到 Google Drive 服务帐户
【发布时间】:2018-02-22 20:23:52
【问题描述】:

我需要让其他人将文件上传到我的 Google Drive SERVICE ACCOUNT(使用 Javascript)

我想让我的网络应用程序的用户(不需要拥有 Google 帐户)将文件上传到我创建的服务帐户。

Google 文档的“快速入门”演示有效,但仅用于授权用户使用自己的帐户。

以防万一我有 api 密钥、服务帐户密钥 (json) 和客户端 ID。

我在 stackoverflow 中看到了其他类似的问题,但似乎所有问题的答案都不完整。

谁能给我看一个工作示例来实现它?

谢谢。

【问题讨论】:

  • 我认为这是不可能的。尽管如此,让任何人在您的帐户上上传文件(垃圾邮件、ddos 等)将是一个高风险
  • 看来,谷歌不从事通过单一帐户提供免费服务的业务。您无法创建一个提供作为个人服务的应用程序。似乎您正在做超出您自己用户帐户范围的事情。
  • 我不认为是不可能的,我以前做过,但是用 VB net 和 Drive V2。此外,谷歌开发者控制台中有一个限制(我现在看不到),显示“1000 个请求/天/用户”或类似的东西,所以我想 ddos​​ 或垃圾邮件是不可能的。

标签: javascript google-api google-drive-api


【解决方案1】:

在此代码中 TestGoogleDrive.json - 您的服务帐户密钥。

var { google } = require('googleapis');
var key = require('./TestGoogleDrive.json');

var jwtClient = new google.auth.JWT(
    key.client_email,
    null,
    key.private_key,
    [
      'https://www.googleapis.com/auth/drive',
      'https://www.googleapis.com/auth/drive.file'
    ],
   null
  );

var drive = google.drive( 'v3');


jwtClient.authorize(function (err, tokens) {
   if (err) {
      console.log(err);
      return;
   }
  // Make an authorized request to list Drive files.
  drive.files.list({
      auth: jwtClient,
      pageSize: 10,
      fields: "nextPageToken, files(id, name)"
    }, function (err, resp) {
    resp.data.files.map(file => console.log(file));
  });

});

您可以在link 之后找到完整信息。

【讨论】:

  • 谢谢弗拉基米尔,我会测试它并告诉你。
  • 真棒弗拉基米尔,最后我做到了,但有必要改变一些事情,因为我得到“未定义的身份验证”错误,我将第一行更改为:const google = require('googleapis'); const fs = require('fs'); const key = require('./mi_archivo.json'); const drive = google.drive('v3'); const jwtClient... 根据你的样本和你的来源.再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-28
  • 2019-10-27
  • 2016-09-23
  • 2015-01-06
  • 1970-01-01
相关资源
最近更新 更多