是否可以通过示例中给出的API密钥而不是OAuth使用“ Google Sheet Java API”
https://developers.google.com/sheets/api/quickstart/java
我知道您可以使用HTTP请求通过API密钥获取数据,但是我在想是否可以通过Google提供的Java API来执行此操作,这样我就不必为每个请求解析JSON。
答案 0 :(得分:1)
是的,基本上,您需要类似以下内容的东西:
public NetHttpTransport netHttpTransport() throws GeneralSecurityException, IOException {
return GoogleNetHttpTransport.newTrustedTransport();
}
public JacksonFactory jacksonFactory() {
return JacksonFactory.getDefaultInstance();
}
private Set<String> googleOAuth2Scopes() {
Set<String> googleOAuth2Scopes = new HashSet<>();
googleOAuth2Scopes.add(SheetsScopes.SPREADSHEETS_READONLY);
return Collections.unmodifiableSet(googleOAuth2Scopes);
}
public GoogleCredential googleCredential() throws IOException {
File serviceAccount = new ClassPathResource("serviceAccount.json").getFile();
return GoogleCredential.fromStream(new FileInputStream(serviceAccount))
.createScoped(googleOAuth2Scopes());
}
public Sheets googleSheets() {
return new Sheets(netHttpTransport(), jacksonFactory(), googleCredential());
}
您可以在此处了解有关serviceAccount.json
的更多信息:https://cloud.google.com/iam/docs/creating-managing-service-account-keys
以上内容摘自一个我与Google API集成的示例Spring Boot项目:https://github.com/ciscoo/spring-boot-google-apis-example
答案 1 :(得分:0)
是的,您可以使用API密钥。来自https://developers.google.com/sheets/api/guides/authorizing
您的应用程序发送到Google Sheets API的每个请求都需要向Google标识您的应用程序。有两种方法可以识别您的应用程序:使用OAuth 2.0令牌(也可以授权请求)和/或使用应用程序的API密钥。
答案 2 :(得分:0)
我没有找到实现此目标的任何官方方法,但是我能够按照Acquiring and using an API key中所述进行操作:
拥有API密钥后,您的应用程序可以将查询参数
Code
附加到所有请求URL。
使用请求拦截器并手动添加key=yourAPIKey
查询参数,如下所示:
key