0

使用此示例(https://developers.google.com/google-apps/spreadsheets/#creating_a_spreadsheet),我现在可以使用 oAuth 1.0 登录并使用 Google 电子表格 api,因为他们有一个 java 示例.

在这里,它获取访问令牌 + 机密,并且随后调用 SpreadsheetService 工作。

但是,如果我想一天后回来,并使用相同的访问令牌 + 密码,那应该也可以吧?

但是,如果我这样做,它会给我一个例外:

com.google.gdata.util.AuthenticationException: Unknown authorization header

我错过了什么?我是否必须一直将用户重定向到该 URL?

我的 Java 代码如下所示:

    SPREADSHEET_FEED_URL = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");

    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
    OAuthHmacSha1Signer signer =  new OAuthHmacSha1Signer();
    GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
    oauthParameters.setScope(SCOPES);

    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); // hardcoded variable
    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);// hardcoded variable
    oauthParameters.setOAuthTokenSecret(OAUTH_ACCESS_SECRET);// hardcoded variable
    oauthParameters.setOAuthToken(OAUTH_ACCESS_TOKEN);// hardcoded variable
    service.setOAuthCredentials(oauthParameters,signer);

    SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class);

我错过了什么?

4

1 回答 1

1

使用刷新令牌获取新的访问令牌。访问令牌不会持续很长时间,可能是 1 小时,类似的。谷歌驱动 DrEdit 教程有大部分用于刷新的代码。更改 DrEdit 代码以获得新令牌并不难。....(另一方面,谷歌应用程序脚本也有一个电子表格 API)

于 2013-03-19T01:02:33.490 回答