2016-03-02 41 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()); 
       } 
      }); 
} 
相關問題