我需要将我的离子应用程序连接到谷歌驱动器,显示所有文件,也许上传,下载,删除,编辑。所以我试试这个 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
未捕获的TypeError:无法调用未定义的方法'load'
无法找到InAppBrowser插件
这个 http://blog.ionic.io/oauth-ionic-ngcordova/1 控制台上没有错误...但是在验证后返回主页
这个 http://excellencenodejsblog.com/cordova-ionic-google-oauth-login-for-your-mobile-app/ 有了这个,我得到了用户的信息,但没有得到驱动器中的文件
任何建议?我需要一些工作示例入门代码 谢谢
答案 0 :(得分:5)
您需要使用Google本地验证您的cordova应用程序才能使用API。首先,按照每个平台(iOS和Android)的官方Google指南(如果您还没有),为您的应用程序创建所需的凭据。然后尝试以下链接上的插件:
我为个人移动项目创建了这个插件。此插件支持上载,下载和文件列表。
要检索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());
}
});
}
答案 1 :(得分:4)
您是否在Google Developer Console上为您的应用程序正确创建了项目?已启用Google Drive API?配置您的凭据和身份验证视图以使用您的应用程序? 好的,使用Google Api的任何端点,都会带您完成两个步骤:
使用访问令牌和api密钥制作所需的请求,例如创建文件夹:
$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);
})
使用https://www.googleapis.com/drive/v2/files的网址用于元数据请求,要上传,您会更喜欢https://www.googleapis.com/ 上传 / drive / v2 / files,以获取更多文档{{3 }}
永远不要忘记ngCordova功能仅适用于设备或模拟器,而不适用于浏览器/导航器。