外部Javascript客户端Google云端硬盘上传授权

时间:2012-08-31 11:55:16

标签: javascript upload client oauth-2.0 google-drive-api

我正在开发基于Javascript的客户端应用程序,该应用程序不是Google App。我可以在云端硬盘上创建文件,但在尝试上传内容时遇到授权问题。

评论: Authorization of Google Drive using JavaScript 似乎说客户端必须是谷歌应用程序写入驱动器,但直到我看到这个评论我认为这可能通过我创建空文件的能力得到加强。请有人澄清一下吗?

我正在使用类似于帖子的响应3的代码,但我只是在登录屏幕上没有要求Google云端硬盘权限。

我的代码使用How do I add/create/insert files to Google Drive through the API?

中描述的2部分“媒体”上传方法

正如我所说,文件创建有效,但上传失败:

PUT https://www.googleapis.com/upload/drive/v1/files/0Bxbwly1hLFXnVmQ3Snh3ZXVOYVE?uploadType=media&alt=json&key= 401(未经授权)rs = AItRSTNkdxHWOPN1C6XNGC9ea3U4KWDICw:128  :response> {“error”{“message”“Invalid Credentials”,“errors”[{“domain”“global”,“reason”“authError”,“message”“Invalid Credentials”,“locationType”“header”, “location”“授权”}],“代码”401}}

我没有使用Javascript直接而不是Clojurescript,因此我的上传调用可能存在问题。没有任何要求谷歌驱动器权限的东西似乎表明存在真正的授权问题但是我希望在请求“https://www.googleapis.com/auth/drive”时不会获得access_token。感谢

更新.... 我终于解决了这个问题:如果我请求“https://www.googleapis.com/auth/drive.file”而不是更高权限“https://www.googleapis.com/auth/drive”,则身份验证会请求访问云端硬盘并上传文件内容。

1 个答案:

答案 0 :(得分:1)

我终于解决了这个问题:如果我请求“https://www.googleapis.com/auth/drive.file”而不是更高权限https://www.googleapis.com/auth/drive,那么身份验证请求访问Drive和文件内容已上传。