hxn_217 2013-09-06 06:57 采纳率: 0%
浏览 1393

如何以程序化的方式上传一个文件到 google drive?

请问在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
  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-13 14:17
    关注

    该回答引用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。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?