我正在为不支持库的平台开发程序,该库不支持从Google云端硬盘上载或下载文件。 所以我需要发送Socket命令。 但是我发现很难实现。
我的程序将发送.txt,jpg,.html等文件类型。
我将不得不从命令行发送和下载这些文件。我已经尝试过,但是没有成功...
首先要获得有效的令牌,我正在使用此链接,用户将在浏览器中打开该链接,并在我的程序内复制该令牌以修改其文件: https://accounts.google.com/o/oauth2/v2/auth?scope=profile&response_type=code&state=security_token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&client_id=165834794520-tit58jbii1u8itv8q8urjlda1tobsvf1.apps.googleusercontent.com
显然这部分工作正常。
但是当我使用令牌发送文件时,它不起作用。 我将此命令作为测试进行了,它不起作用! 我已经多次更改了令牌,以为可能是,但是事实并非如此。 很奇怪。
我的文件,我将从命令行发送,所以我不确定应该使用哪种方法,SIMPLE还是MULTIPART ... 我的文件很小,但可能只有5MB。
看看我在终端(原始套接字)中得到什么:
S: POST /upload/drive/v3/files?uploadType=multipart HTTP/1.1
S: Host: www.googleapis.com
S: Authorization: Bearer 4/AABZB61gFY8NqyXxxxxxxxxxxr7CThy1BuDOOGL7aLiRab80
S: Content-Type: multipart/related; boundary=foo_bar_baz
S: Content-Length: 167
S:
S: --foo_bar_baz
S: Content-Type: application/json; charset=UTF-8
S:
S: {
S: "name": "myObject"
S: }
S:
S: --foo_bar_baz
S: Content-Type: image/jpeg
S:
S: [JPEG_TEST]
S: --foo_bar_baz--
Return:
HTTP/1.1 401 Unauthorized
X-GUploader-UploadID: AEnB2UoolTbsyS_gK21G07sUJrIggzH_ivy1a_KvzvnvhiyqIOYqej8JhNQ1tmZ0KiIlrYjOTejlxXYIoSiTNs3mLiLBWzCb-A
Vary: Origin
Vary: X-Origin
WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token
Content-Type: application/json; charset=UTF-8
Content-Length: 249
Date: Wed, 11 Jul 2018 12:51:18 GMT
Server: UploadServer
Alt-Svc: quic=":443"; ma=2592000; v="43,42,41,39,35"
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
该错误似乎是错误的令牌,但是我总是得到新的令牌,并且总是给出相同的错误!
有人可以帮我吗?