我目前正在尝试使用新的Java客户端,由于Google图库当前状态的遗留原因,我需要同时使用gdata和新的google java客户端API。
显然我想使用OAuth2 - 但是对于OAuth2,我没有获得访问令牌的秘密 - 这会导致问题b / c gdata要求访问令牌保密。
任何人都可以就解决方法提出建议,例如。 - 有没有办法使用仅具有访问令牌(OAuth2)的gdata java库而不访问令牌密钥?代码示例(和尝试)没有证实这一点,但也许我做错了
由于
答案 0 :(得分:13)
我找到了解决方案。 您可以按照http://code.google.com/apis/accounts/docs/OAuth2WebServer.html#callinganapi
中的说明设置特殊的HTTP标头(授权:承载ACCESS_TOKEN)收到accessToken后(例如此http://code.google.com/p/google-api-java-client/wiki/OAuth2Draft10),您可以像这样调用“旧”gdata服务:
SpreadsheetService service = new SpreadsheetService("yourAppName");
service.setHeader("Authorization", "Bearer " + accessToken);
URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
SpreadsheetFeed feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries();
for (int i = 0; i < spreadsheets.size(); i++) {
SpreadsheetEntry entry = spreadsheets.get(i);
System.out.println("\t" + entry.getTitle().getPlainText());
}
有点奇怪,我无法清楚地找到它。我只是巧合地发现了它。