如果我错了,请纠正我,但根据我经历的常见问题解答,我读到javascript客户端库https://developers.google.com/api-client-library/javascript/reference/referencedocs仅用于Web应用程序。我正在使用phonegap制作移动应用程序,其中用户应该能够将图片上传到谷歌驱动器。我正在浏览这些链接: https://developers.google.com/drive/v2/reference/files/insert
如您所见,它使用javascript客户端库上传文件。有没有办法可以在不使用该库的情况下完成。如果是这样,我怎么能使用纯js或jquery?
由于
谢谢JunYoung ...我能够完成你登录和授权的部分。现在我要做的是将文件上传到我的云端硬盘。我看到的所有示例都使用JS客户端库。 https://developers.google.com/drive/quickstart-js我想执行相同但不使用gapi.client.request。我想使用简单的POST。这是我的代码
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
var reader = new FileReader();
var fileContent = this.$.fileInput.getFiles()[0];
reader.readAsBinaryString(fileContent);
reader.onload = function(e) {
var contentType = fileContent.type || 'application/octet-stream';
var metadata = {
'title': fileContent.name,
'mimeType': contentType
};
var base64Data = btoa(reader.result);
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' + JSON.stringify(metadata) + delimiter + 'Content-Type: ' + contentType + '\r\n' + 'Content-Transfer-Encoding: base64\r\n' + '\r\n' + base64Data + close_delim;
var driveAjax = new enyo.Ajax({
url: 'https://www.googleapis.com/upload/drive/v2/files',
method: 'POST',
contentType: 'multipart/mixed; boundary="' + boundary + '"',
postBody: multipartRequestBody
});
driveAjax.response(this, "uploadSuccess");
driveAjax.error(this, "processError");
driveAjax.go({
uploadType:'multipart'
});
正如您所看到的,我已经用简单的ajax调用替换了gapi.client.request部分。但这似乎不起作用。 BTW我正在使用enyo js框架。你能发现任何问题吗?
答案 0 :(得分:2)
将Drive API与Phonegap集成有什么问题吗?
Drive API基本上是HTTP请求,它可以用纯Javascript完成。因此,您可以对Files.insert()使用jQuery AJAX调用。但是,我建议你使用Javascript客户端。以下是OAuth using JS client library的示例。请使用您的Phonegap应用程序尝试此示例,如果有任何问题,请再次提问。