我是 Google API 新手。我的目标是允许网站用户将文件上传到我们的公共(public) Google 云端硬盘文件夹。我应该在客户端进行。
我知道它不安全,但团队敦促我在前端执行此操作。
我已经阅读并尝试了不同的解决方案(也来自 StackOverflow 的答案),但没有任何效果。
我还检查了 Google Drive API 文档:https://developers.google.com/drive/v3/web/manage-uploads
请求应该是:
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
header (不安全的 header 错误)。
your_auth_token
是客户端 secret
吗?
有什么想法可以实现这一点吗?
最佳答案
您需要创建一个 Google 应用程序来将您的 auth_token 粘贴到您的请求 header 中,这样应该可以正常工作。
授权如何运作 在较高级别上,所有应用程序都遵循相同的基本授权模式:
- 在 Google API 控制台中注册应用程序。
- 请求用户授予对其 Google 帐户中数据的访问权限。
- 如果用户同意,您的应用程序会请求并接收 凭证
- 访问云端硬盘 API。
- 刷新凭据(如有必要)。
创建新的身份验证
- 在“凭据”页面中,单击“创建凭据”>“OAuth 客户端” 用于创建 OAuth 2.0 凭据的 ID 或创建凭据 > 用于创建服务帐户的服务帐户 key 。
- 如果您创建了 OAuth 客户端 ID,请选择您的应用程序 类型。填写表格并单击“创建”。
客户端 key 存储在此处:
https://console.developers.google.com/flows/enableapi?apiid=drive&safe=vss&credential=client_key
更多文档
关于javascript - 任何人都可以使用 JavaScript 将文件上传到我的 Google Drive 公共(public)文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38915173/