我需要使用Java在Google云端硬盘中创建该文件夹。是否有人告诉我示例或如何在Google云端硬盘中创建文件夹。提前致谢...!!!
我的节目
package net.sf.dynamicreports.examples;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import com.google.gson.JsonObject;
public class SourceCodeProgram {
public static void main(String argv[]) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(
"https://www.googleapis.com/drive/v2/files");
post.addHeader("Content-Type", "application/json");
post.addHeader("Authorization",
"Bearer XXXXXXXXXXXXXXXXXXXXXXXXX ");
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("title", "Test folder");
jsonObject
.addProperty("mimeType", "application/vnd.google-apps.folder");
post.setEntity(new StringEntity(jsonObject.toString()));
httpClient.execute(post);
}
}
在上面的程序中,一切都很顺利,只想了解
post.addHeader( “授权”, “Bearer XXXXXXXXXXXXXXXXXXXXXXXXX”);
我应该在
放置什么XXXXXXXXXXXXXXXXXXXXXXXXX
这是我从谷歌获得的某种钥匙吗?
答案 0 :(得分:0)
Google使用OAuth 2.0身份验证,您需要添加OAuth令牌代替xxxxxxxx进行OAuth 2.0身份验证(授权承载头用于OAuth身份验证)。这可能对您有用:https://developers.google.com/identity/protocols/OAuth2
使用Google成功验证后,您可以使用以下代码在Google云端硬盘中创建文件夹:
File fileMetadata = new File();
fileMetadata.setName("Invoices");
fileMetadata.setMimeType("application/vnd.google-apps.folder");
File file = driveService.files().create(fileMetadata).setFields("id").execute();
System.out.println("Folder ID: " + file.getId());
P.S。 - 这是从Google Drive Help Link
引用的答案 1 :(得分:0)
请改用Drive API JAVA Quickstart,然后从那里开始。 ' xxxxxxxx'不是你可以从某个地方复制和粘贴的东西。它是Google API生成的访问令牌。但是出于测试目的,您可以从OAuthplayground生成它,复制并粘贴代替xxxxx。它只会持续一个小时,因此您还需要实现刷新令牌。这仅仅是出于测试目的。
为了让您了解正在生成的访问令牌,您可以在Picker API中看到此Javascript实现:
function onAuthApiLoad() {
window.gapi.auth.authorize(
{
'client_id': clientId,
'scope': scope,
'immediate': false
},
handleAuthResult);
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
oauthToken = authResult.access_token; //<-- access token
createPicker();
}
}