2016-01-05 32 views
1

我感到困惑与Connecting and Authorizing with the Google APIs Java Client连接,并与谷歌API的Java客户端授权

我写了下面的代码,并获得服务实例的公会

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE); 
credential.setSelectedAccountName(accountName); 
Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build(); 

我不知道下一步是什么是。

这在我看来,在该代码的驱动器类是从驱动器中Google API for Android

不同类然后,我应该遵循驱动器REST API或驱动器API为Android。

回答

1

这些是2种不同的API,不建议将它们混合在一起。该REST API(v2v3)使用

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(); 

用于访问GDAA像这样来创建GoogleApiClient mGAC

mGAC.connect()/disconnect() 
Drive.DriveApi.getRootFolder(mGAC)... 
Drive.DriveApi.getAppFolder(mGAC)... 
Drive.DriveApi.getFolder(mGAC, ...)... 
Drive.DriveApi.query(mGAC, ...)... 
DriveFolder.createFile(mGAC, ..., ...) 
... 

正如我上面提到的,不要混用两种API除非您知道其含义(GDAA是本地服务 - 请参阅Drive Local ContextLifecycle of a Drive filehere,REST API直接与网络通话)。

在GitHub上有两个这样的API可以解决同样的问题(构建和读取目录树)在这里(REST)和这里(GDAA)。这两者的MainActivity几乎相同,它分别调用包装类REST或GDAA的方法。

好运

+0

非常感谢您的解释。 –

+0

如果您决定使用Github示例进行游戏,您可以安全地剥离Accounr Manager(UT.AM),Account Picker和'email'来简化它。帐户选择将由服务处理。您的应用只是不知道您的用户选择了哪个帐户。 – seanpj