如何从 GoogleApiClient 获取 OAuth 令牌

How to Get OAuth Token From GoogleApiClient

我正在尝试构建一个 Android 应用程序,该应用程序在 Google 驱动器中创建一个传播 sheet,然后向其中添加一些数据。我可以使用 Google Drive Android API 成功创建传播 sheet,这涉及创建 GoogleApiClient 并使用实现 GoogleApiClient.ConnectionCallbacks.

当我启动应用程序时,我创建了一个新的 GoogleApiClient 并提示我 select 一个帐户。在 onConnected 回调中,我可以将我的 GoogleApiClient 新传递给 Drive.DriveApi 以查询和创建文件和文件夹。

但是,要将数据添加到 Google sheet,我需要使用 GoogleSheets API。据我所知,它没有 Android API,但它确实有一个 gdata API。但是,为了使用它,我需要一个 OAuth 令牌。

我是否可以从 GoogleApiClient 对象获取 OAuth 令牌?

您可以使用GoogleAuthUtil.getToken()

在 AsyncTask 执行网络操作时调用此方法。

是的,你可以使用

    GoogleAccountCredential mCredential;
String[] SCOPES = {"https://www.googleapis.com/auth/userinfo.profile"};

     mCredential = GoogleAccountCredential.usingOAuth2(mContext, Arrays.asList(SCOPES))
                    .setBackOff(new ExponentialBackOff())
                    .setSelectedAccountName(ACC_NAME);

        GoogleAuthUtil.getToken(mContext, mCredential.getSelectedAccountName(),SCOPE)

GoogleAuthUtil.getToken