2016-03-02 43 views
0

我需要连接我的离子应用谷歌驱动器,显示所有文件,也许上传,下载,删除驱动器,edit.So我试试这个 https://github.com/Raza-Dar/ionic-google-drive2如何实现在谷歌应用程序离子

错误: 失败到负载资源:服务器回应的状态404(未找到)https://apis.google.com//scs/apps-static//js/k=oz.gapi.en.RArmLpCIYB0.O/m ... 1/ED = 1/AM = QQ/RS = AGLTcCOEiG2RgKkKDvOG7y5PZ-fMFMsJXQ/T = ZCMS/CB = gapi.loaded_01

未捕获的类型错误:无法调用未定义的方法“加载”

找不到InAppBrowser插件

http://blog.ionic.io/oauth-ionic-ngcordova/1 在控制台上没有任何错误......但验证返回到主页

http://excellencenodejsblog.com/cordova-ionic-google-oauth-login-for-your-mobile-app/ 本后,我得到了用户的信息,但不是在驱动

文件

有什么建议吗?我需要一些工作示例入门代码 谢谢

回答

3

您是否在Google Deve上为您的应用程序正确创建了项目loper Console?已启用Google Drive API?配置您的凭证和身份验证视图以与您的应用程序一起使用? 好了好了,使用谷歌的API任何端点,将带给你通过两个步骤:

  1. 使用您的API密钥,需要范围登录的用户,如果成功,你会得到一个的access_token才能够使用一小时的API:在你的情况下,更喜欢使用$ cordovaOauth.google(YOUR_API_KEY,YOUR_SCOPES),范围是一个权限数组,如['https://www.googleapis.com/auth/drive'],在这种情况下,这意味着“APPName需要管理(crud)您的文件“
  2. 使用访问令牌和您的api密钥发出请求,fo [R例如创建一个文件夹:

    $http.post(
        'https://www.googleapis.com/drive/v2/files&access_token='+ACCESS_TOKEN, 
        { 
         title:"FolderName", 
         mimeType: "application/vnd.google-apps.folder", // special mimeType for google drive folders 
         key: YOUR_API_KEY 
        } 
    ).success(function (data) { 
        console.log(data.id); // id of the created folder 
        console.log(data.alternateLink); // Web link to created folder 
    }).catch(function(err){ 
        console.log(err); 
    }) 
    

    URL中使用https://www.googleapis.com/drive/v2/files,是metadatas请求,上传你会喜欢https://www.googleapis.com/上传 /驱动器/ V2 /文件,更多的文档去那里https://developers.google.com/drive/v3/reference/files#resource-representations

不要忘记,ngCordova功能仅适用于设备或模拟器,而不适用于浏览器/导航器。

+0

谢谢你这么这么这么这么大......真的很感谢你们。我会尽快尝试。但是,是的,我认为我已经在谷歌控制台中以正确的方式配置了所有内容 –

+0

欢迎您,并且当然很幸运,因为我正在为一个项目开展工作,并且我已经面对这部分的每一个问题。如果需要,我有一个有效的角度服务 – JeanSaigne

+0

哦,老板......你真了不起。如果你能给我一个链接到一个工作应用程序的示例代码,使用谷歌驱动器来显示,下载和上传文件,这将是伟大的,因为我有一些其他问题。特别是如果是一个离子项目。无论如何感谢很多 –

2

为了使用API​​,您需要通过Google本机验证您的cordova应用程序。首先,按照官方的Google指南为每个平台(iOS和Android),如果您还没有,为您的应用程序创建所需的凭据。然后尝试下面的链接插件:

Cordova google drive plugin

我创造了这个插件,个人移动项目。这个插件支持上传,下载和文件列表。

要检索创建/文件由您的应用程序为Android上传的列表,你可以试试这个在Java方面:

private void fileList() { 
    Query query = new Query.Builder().addFilter(Filters.and(
      Filters.eq(SearchableField.MIME_TYPE, "application/octet-stream"), 
      Filters.eq(SearchableField.TRASHED, false))).build(); 

    Drive.DriveApi.query(mGoogleApiClient, query) 
      .setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() { 
       @Override 
       public void onResult(DriveApi.MetadataBufferResult result) { 
        if (!result.getStatus().isSuccess()) { 
         mCallbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR,"failed to retrieve file list")); 
         return; 
        } 
        MetadataBuffer flist = result.getMetadataBuffer(); 
        Log.i(TAG,flist.get(0).getClass().getName()); 
        JSONArray response = new JSONArray(); 
        for (Metadata file: flist 
         ) { 
         try { 
          response.put(new JSONObject().put("name", file.getTitle()).put("created", file.getCreatedDate().toString()).put("id", file.getDriveId().toString())); 
         }catch (JSONException ex){ex.getMessage();} 
        } 
        JSONObject flistJSON = new JSONObject(); 
        try{ 
         flistJSON.put("flist", response); 
        } catch (JSONException ex){} 
        mCallbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK,flistJSON)); 
        flist.release(); 
        //Log.i(TAG,flist.toString()); 
       } 
      }); 
} 
相关问题