Die App ist eine Java-Web-App, die auf Tomcat 10.1 läuft. Es handelt sich um eine interne Einzelbenutzer-App, mit der ich meinen Kalender lesen und schreiben sowie meine Google-Tabellen auflisten, lesen und schreiben möchte. Da ich auf meinen persönlichen Kalender und meine persönlichen Blätter zugreife, ist die Verwendung eines Dienstkontos ausgeschlossen. Ich verwende also eine OAuth 2-Client-ID.
Meine App führt den folgenden Code aus:
Code: Select all
if ( credential == null ) {
final NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load( JSON_FACTORY , new StringReader( credentialsString ) );
File tokenDirectory = new java.io.File( tokensDirectoryPath );
LOGGER.debug( String.format( "Token directory: %s" , tokenDirectory.getAbsolutePath() ) );
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport , JSON_FACTORY , clientSecrets , Constants.SCOPES )
.setDataStoreFactory( new FileDataStoreFactory( new java.io.File( tokensDirectoryPath ) ) )
.setAccessType( "offline" )
.setApprovalPrompt( "force" )
.build();
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort( 8081 ).build();
credential = new AuthorizationCodeInstalledApp( flow , receiver ).authorize( "user" );
}
Code: Select all
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=xxxx&redirect_uri=http://localhost:8081/Callback&response_type=code&scope=https://www.googleapis.com/auth/calendar%20https://www.googleapis.com/auth/drive.readonly%20https://www.googleapis.com/auth/spreadsheets
Ich erhalte einen URI zurück, der so aussieht:
Code: Select all
http://localhost:8081/Callback?code=xxxxxxxxxxxxxxxxxx&scope=https://www.googleapis.com/auth/spreadsheets%20https://www.googleapis.com/auth/drive.readonly%20https://www.googleapis.com/auth/calendar
Sieht irgendjemand, was ich falsch mache?
 Mobile version
 Mobile version