[英]Google Drive Rest API on Android
我正在為一家公司開發應用程序,需要將其與Google雲端硬盤集成。 我不能使用本機API,因為該公司擁有的文件不是由應用程序創建的,需要處理,我需要完整的驅動器范圍,因此我必須使用REST API。
這就是問題所在,因為我對JSON和REST僅有非常基本的了解,因此教程對我來說還不夠基礎。
教程: https : //developers.google.com/drive/web/integrate-create
據我了解,我需要在Java代碼中創建JSON,然后將其傳遞給示例代碼?
JSON
{
"action":"create",
"folderId":"0ADK06pfg",
"userId":"103354693083460731603"
}
JAVA
public class State {
/**
* Action intended by the state.
*/
public String action;
/**
* IDs of files on which to take action.
*/
public Collection<String> ids;
/**
* Parent ID related to the given action.
*/
public String parentId;
/**
* Empty constructor required by Gson.
*/
public State() {}
/**
* Create a new State given its JSON representation.
*
* @param json Serialized representation of a State.
*/
public State(String json) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
State other = gson.fromJson(json, State.class);
this.action = other.action;
this.ids = other.ids;
this.parentId = other.parentId;
}
}
問題是我不知道如何創建JSON,也不知道在創建時如何使用JSON來執行諸如創建文件和查詢文件之類的事情。
如果有人可以幫助我,甚至可以在用戶的根文件夾中創建一個空文件,那么我可以從那里拿走它,但是我真的可以在正確的方向上使用微調!
假設您正在談論的是Android應用程序,則無需創建JSON。 Java REST Api在Android上非常易於使用。 如果官方文檔和示例不足夠,您可以查看此演示 。 (為了保持與GDAA 版本的兼容性),它需要稍微復雜一些,但是通過一些簡單的步驟,您可以簡化它。
我當然不能在這里復制所有代碼,但是您可以搶奪REST類 ,為setSelectedAccountName()提供一個GooDrive帳戶(或省略該方法,讓服務來處理它)並簡化connect()/ disconnect()方法。 connect()方法(為了與GDAA兼容)應替換為try / catch結構,如下所示:
com.google.api.services.drive.Drive mGOOSvc;
...
try {
mGOOSvc...execute();
} catch (UserRecoverableAuthIOException uraIOEx) {
// standard authorization failure - user fixable
} catch (GoogleAuthIOException gaIOEx) {
// usually PackageName / SHA1 mismatch in DevConsole
} catch (IOException e) {
// '404 not found' in FILE scope, still, consider connected
if (e instanceof GoogleJsonResponseException) {
if (404 == ((GoogleJsonResponseException) e).getStatusCode())
mConnected = true;
}
} catch (Exception e) {
// "the name must not be empty" indicates
// UNREGISTERED / EMPTY account in 'setSelectedAccountName()' ???
}
您可以在REST類中找到“ ... execute()”方法的任何位置,以便捕獲突然丟失的授權等信息(可能隨時發生)。 否則,我已經運行了該CRUD實現一段時間,從未遇到過問題。
關於REST Api的一般說明。 由於它是“取決於網絡狀態”的,因此我建議將其與應用程序的UI完全斷開連接,並在存在活動的網絡(WIFI,蜂窩)流量時以某種類型的同步服務運行它。 在此處查看與網絡相關的劇集。
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.