代码之家  ›  专栏  ›  技术社区  ›  Niti Santikul

使用Google API Java客户端连接和授权

  •  1
  • Niti Santikul  · 技术社区  · 9 年前

    我对公会感到困惑 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();
    

    我不知道下一步是什么。

    在我看来,这段代码中的Drive类与Drive-in类不同 Google API for Android

    那么我应该遵循驱动REST API或Android驱动API吗。

    1 回复  |  直到 9 年前
        1
  •  1
  •   seanpj    9 年前

    这是两种不同的API,不建议将它们混合在一起。REST Api( v2 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是一个本地服务-请参阅 Drive Local Context 在里面 Lifecycle of a Drive file here ,REST Api直接与网络对话)。

    GitHub上提供了这两个API的两个示例,解决了相同的问题(构建和读取目录树)( REST )还有这里( GDAA ). 这个 MainActivity 这两个类的方法基本相同,它分别调用包装类REST或GDAA的方法。

    祝你好运