使用 Google API Java 客户端进行连接和授权
Connecting and Authorizing with the Google APIs Java Client
我对行会感到困惑Connecting and Authorizing with the Google APIs Java Client
我写了下面的代码,获取了服务实例
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
credential.setSelectedAccountName(accountName);
Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
我不知道下一步是什么。
在我看来,此代码中的驱动器 class 与 Google API for Android
中的驱动器不同 class
那我应该按照 Drive REST API 还是 Drive API for Android.
这是2种不同的API,不建议混用。 REST Api (v2 and v3) 使用
com.google.api.services.drive.Drive mGOOSvc =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
GoogleAccountCredential.usingOAuth2(Context, Collections.singletonList(DriveScopes.DRIVE_FILE))
....
)
.build();
访问 GooDrive 服务,即调用如下方法:
mGOOSvc.files().get()...
mGOOSvc.files().list()....
mGOOSvc.files().insert()...
mGOOSvc.files().patch()...
mGOOSvc.files().update()...
mGOOSvc.getRequestFactory().buildGetRequest()...
使用您实例化的此服务。
另一方面,GDAA 使用不同的结构:
com.google.android.gms.common.api.GoogleApiClient mGAC
= new GoogleApiClient.Builder(Context)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks( new GoogleApiClient.ConnectionCallbacks() {...})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {...})
....
.build();
创建 GoogleApiClient mGAC
用于访问 GDAA,如下所示:
mGAC.connect() / disconnect()
Drive.DriveApi.getRootFolder(mGAC)...
Drive.DriveApi.getAppFolder(mGAC)...
Drive.DriveApi.getFolder(mGAC, ...)...
Drive.DriveApi.query(mGAC, ...)...
DriveFolder.createFile(mGAC, ..., ...)
...
正如我上面提到的,不要混合使用这两个 API,除非您知道其含义(GDAA 是本地服务 - 请参阅 Lifecycle of a Drive file
here 中的 Drive Local Context
,REST Api 直接与网络对话)。
GitHub 上有这两个 API 的 2 个示例,在此处 (REST) and here (GDAA) 解决了同样的问题(构建和读取目录树)。这两个MainActivity
差不多,都是调用wrapper类REST或者GDAA的方法
祝你好运
我对行会感到困惑Connecting and Authorizing with the Google APIs Java Client
我写了下面的代码,获取了服务实例
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
credential.setSelectedAccountName(accountName);
Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
我不知道下一步是什么。
在我看来,此代码中的驱动器 class 与 Google API for Android
中的驱动器不同 class那我应该按照 Drive REST API 还是 Drive API for Android.
这是2种不同的API,不建议混用。 REST Api (v2 and v3) 使用
com.google.api.services.drive.Drive mGOOSvc =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
GoogleAccountCredential.usingOAuth2(Context, Collections.singletonList(DriveScopes.DRIVE_FILE))
....
)
.build();
访问 GooDrive 服务,即调用如下方法:
mGOOSvc.files().get()...
mGOOSvc.files().list()....
mGOOSvc.files().insert()...
mGOOSvc.files().patch()...
mGOOSvc.files().update()...
mGOOSvc.getRequestFactory().buildGetRequest()...
使用您实例化的此服务。
另一方面,GDAA 使用不同的结构:
com.google.android.gms.common.api.GoogleApiClient mGAC
= new GoogleApiClient.Builder(Context)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks( new GoogleApiClient.ConnectionCallbacks() {...})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {...})
....
.build();
创建 GoogleApiClient mGAC
用于访问 GDAA,如下所示:
mGAC.connect() / disconnect()
Drive.DriveApi.getRootFolder(mGAC)...
Drive.DriveApi.getAppFolder(mGAC)...
Drive.DriveApi.getFolder(mGAC, ...)...
Drive.DriveApi.query(mGAC, ...)...
DriveFolder.createFile(mGAC, ..., ...)
...
正如我上面提到的,不要混合使用这两个 API,除非您知道其含义(GDAA 是本地服务 - 请参阅 Lifecycle of a Drive file
here 中的 Drive Local Context
,REST Api 直接与网络对话)。
GitHub 上有这两个 API 的 2 个示例,在此处 (REST) and here (GDAA) 解决了同样的问题(构建和读取目录树)。这两个MainActivity
差不多,都是调用wrapper类REST或者GDAA的方法
祝你好运