使用此示例(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);
我缺少什么?
答案 0 :(得分:1)
使用刷新令牌获取新的访问令牌。访问令牌不会持续很长时间,可能是1小时,就像那样。谷歌驱动器DrEdit教程有大部分代码用于刷新。更改DrEdit代码以获取新令牌并不困难。 ....(另一方面,谷歌应用程序脚本也有一个电子表格API)