请问在titanium Appcelerator中使用javascript如何从程序的本地存储目录中上传一个文件到google drive?
我使用的下面的代码,但是不能上传文件。
var ggParams = {
clientId: '662194379016.apps.googleusercontent.com',
clientSecret: 'ffRSIWBlXyPwW-M1iQ6DNtXZ',
redirectUri: 'http://localhost', //urn:ietf:wg:oauth:2.0:oob
devKey: 'AIzaSyBmXhfsc--2CdlSU8UD37Ryyd3qYaUxKls',
};
// Initialize Youtube Service
var google = new Google(ggParams);
google.login(function(e){
Ti.API.info('Token: ' + google.accessToken());
});
/* google.refreshToken(function(e){
Ti.API.info('New Token: ' + e.token);
});*/
/*var params = {
call: 'userinfo',
method: 'GET',
params: {
client_id: '662194379016.apps.googleusercontent.com',
client_secret: 'ffRSIWBlXyPwW-M1iQ6DNtXZ',
redirect_uri: 'http://localhost', //urn:ietf:wg:oauth:2.0:oob
devKey: 'AIzaSyBmXhfsc--2CdlSU8UD37Ryyd3qYaUxKls',
code:''
}
};*/
google.callMethod(
args = {
call: 'drive', //token
method: 'GET', //POST
params: {
clientId: '662194379016.apps.googleusercontent.com',
clientSecret: 'ffRSIWBlXyPwW-M1iQ6DNtXZ',
redirectUri: 'http://localhost', //urn:ietf:wg:oauth:2.0:oob
devKey: 'AIzaSyBmXhfsc--2CdlSU8UD37Ryyd3qYaUxKls',
code: 200
}
},
function(e){
if (e.success){
callback(e.data);
Ti.API.info(e.data);
}
else{
Ti.API.info(e.data);
Ti.API.error('Error getting tokens');
}
}, false); //true or false or null
该回答引用ChatGPT
您可以使用Google Drive API和Google OAuth 2.0认证来实现这个功能。
您已经设置了客户端ID、客户端密頁、重定向URI和开发人员密頁,但是您需要使用Google Drive API接口来上传文件。
可以使用以下代码来上传文件:
var file = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'file.txt');
var xhr = Ti.Network.createHTTPClient({
onload: function(e) {
var response = JSON.parse(this.responseText);
Ti.API.info('Uploaded with ID: ' + response.id);
},
onerror: function(e) {
Ti.API.error('Upload error: ' + e.error);
}
});
xhr.open('POST', 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart');
xhr.setRequestHeader('Authorization', 'Bearer ' + google.accessToken());
xhr.setRequestHeader('Content-Type', 'multipart/related; boundary="' + boundary + '"');
xhr.send({
'name': file.name,
'data': file.read(),
'mimeType': file.mimeType
});
请注意,您需要在上传之前先使用Google OAuth 2.0认证登录,并在发送请求时将访问令牌添加到请求标头中。
请确保您在Google Cloud Console中已经启用了Google Drive API。