間違っている場合は訂正してください。よくある質問によると、javascript クライアント ライブラリhttps://developers.google.com/api-client-library/javascript/reference/referencedocsは Web アプリケーションにのみ使用されることを読みました。 . ユーザーがGoogleドライブに写真をアップロードできるようにするphonegapを使用してモバイルアプリを作成しています。私はこれらのリンクを通過しています: https://developers.google.com/drive/v2/reference/files/insert
ご覧のとおり、ファイルのアップロードに JavaScript クライアント ライブラリを使用します。そのライブラリを使用せずにそれを行う方法はありますか。もしそうなら、純粋なjsまたはjqueryを使用するにはどうすればよいですか?
ありがとう
ジュニョンさんありがとう…ログインして認証するところまでできました。今私がやろうとしているのは、ファイルをドライブにアップロードすることです。私が目にするすべての例は、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'
});
ご覧のとおり、gapi.client.request 部分を単純な ajax 呼び出しに置き換えました。しかし、これはうまくいかないようです。ところで、enyo js フレームワークを使用しています。これで問題を見つけることができますか?