硬编码访问令牌在谷歌电子表格API中不起作用?

时间:2013-03-17 15:19:15

标签: java google-sheets

使用此示例(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);

我缺少什么?

1 个答案:

答案 0 :(得分:1)

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