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。

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题