任何人都可以使用JavaScript将文件上载到我的Google Drive公用文件夹

任何人都可以使用JavaScript将文件上载到我的Google Drive公用文件夹,javascript,api,file-upload,google-drive-api,httprequest,Javascript,Api,File Upload,Google Drive Api,Httprequest,我是谷歌API的新手。我的目标是允许网站用户上传一个文件到我们的公共谷歌驱动器文件夹。我应该在客户端做 我知道这并不安全,但团队正在推动我在前端完成这项工作 我读过并尝试过不同的解决方案(也有StackOverflow的答案),但都不管用 我还查看了Google Drive API文档: 请求应该是: POST /upload/drive/v3/files?uploadType=media HTTP/1.1 Host: www.googleapis.com Content-Type: image

我是谷歌API的新手。我的目标是允许网站用户上传一个文件到我们的公共谷歌驱动器文件夹。我应该在客户端做

我知道这并不安全,但团队正在推动我在前端完成这项工作

我读过并尝试过不同的解决方案(也有StackOverflow的答案),但都不管用

我还查看了Google Drive API文档:

请求应该是:

POST /upload/drive/v3/files?uploadType=media HTTP/1.1
Host: www.googleapis.com
Content-Type: image/jpeg
Content-Length: number_of_bytes_in_file
Authorization: Bearer your_auth_token

JPEG data
我试图用JavaScript发出一个简单的HTTP POST请求,但无法设置
Host
头(不安全的头错误)

您的身份验证令牌是
客户机密吗


你知道我该怎么做吗?

你需要创建一个谷歌应用程序,让你的认证令牌粘贴在你的请求头上,这样应该可以正常工作

授权的工作原理 在高层,所有应用程序都遵循相同的基本授权模式:

  • 在GoogleAPI控制台中注册应用程序
  • 请求用户授权访问其Google帐户中的数据
  • 如果用户同意,您的应用程序将请求并接收 全权证书
  • 访问驱动器API
  • 刷新凭据(如有必要)
  • 创建新的身份验证

  • 在凭据页面中,单击创建凭据>OAuth客户端 创建OAuth 2.0凭据或创建凭据的ID> 用于创建服务帐户的服务帐户密钥
  • 如果您创建了OAuth客户端ID,请选择您的应用程序 类型填写表单并单击“创建”
  • 客户端密钥存储在以下位置:

    进一步的文件


    这是可以做到的。谷歌的伙计们构建了Javascript,将文件上传到谷歌硬盘。他们对来源收取200美元

    我已经创建了一个应用程序。我可以授权并上传一个文件到我自己的谷歌硬盘,但是。。。我是否可以跳过授权,或者一直自动授权到我的驱动器帐户,让用户上传他们的文件?@Frelseren我的经验是,这可能不是最好的主意,甚至可能是不可能的。老实说,我不认为谷歌会允许这样做,你可以拥有一个共享的auth_令牌?我几乎已经用它完成了。是的,我们需要一个认证令牌。我的同事开始在后端做这件事。FrelSern有没有想过创造一个可以像中间人一样的休息服务,并且有一个服务的唯一密钥?是的,这正是我们要尝试的。稍后我会发布结果。任何人都可以将文件上传到你的谷歌硬盘。你有没有试过向任何人发布并设置
    谁有权访问该应用程序
    ,即使是匿名的?@d.datul1990我不确定,但我认为该选项仅适用于谷歌应用程序脚本。顺便说一句,我已经通过谷歌脚本完成了这项工作,但我需要将其集成到我们的Salesforce应用程序中,所以我刚刚在GoogleAPI控制台中注册了我们的应用程序。