java-samples icon indicating copy to clipboard operation
java-samples copied to clipboard

Gmail API Java Quickstart Exception checkArgument(Preconditions.java:131)

Open ptro46 opened this issue 3 years ago • 4 comments
trafficstars

Summary

I follow this quickstart https://developers.google.com/gmail/api/quickstart/java I create a project and enable the Gmail API https://developers.google.com/workspace/guides/create-project I create credentials https://developers.google.com/workspace/guides/create-credentials API Key, OAuth client ID, and a Service Account, I download the json file while I create the key in service Account, and I put this file as credentials.json in src/main/resources

Sample Name

Gmail Java Quickstart

Expected Behavior

no exception

Actual Behavior

$ gradle run

Task :run FAILED Exception in thread "main" java.lang.IllegalArgumentException at com.google.common.base.Preconditions.checkArgument(Preconditions.java:131) at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:35) at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.getDetails(GoogleClientSecrets.java:80) at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.(GoogleAuthorizationCodeFlow.java:211) at GmailQuickstart.getCredentials(GmailQuickstart.java:55) at GmailQuickstart.main(GmailQuickstart.java:69)

Specifications

  • Java version (java -version) $ java -version java version "18.0.1.1" 2022-04-22 Java(TM) SE Runtime Environment (build 18.0.1.1+2-6) Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)

  • OS Mac

ptro46 avatar May 20 '22 16:05 ptro46

well, I found the response, first i use the json build from ID clients OAuth 2.0 and not the json build from service Account, and then in ID clients OAuth 2.0 i add the URL in backend section : http://localhost:8888/Callback, and it's ok

ptro46 avatar May 20 '22 19:05 ptro46

I am experiencing this issue as well in a maven project. I am not quite understanding @ptro46 comment. However, it seems to be a configuration issue from the Google console rather than the code. Can instructions be clearer and more beginner friendly please?

erikacamilleri avatar Jul 08 '22 10:07 erikacamilleri

Hi @erikacamilleri in fact I was not using the correct json, when following their doc there are two different json generated and I was not using the correct one, taking the other it worked

ptro46 avatar Jul 08 '22 14:07 ptro46

Hi @ptro46 can you explain the steps that you did to fix your issue? I follow all the steps and create the json from service-account key. But I have the follow error

Exception in thread "main" java.lang.IllegalArgumentException
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:121)
	at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:35)
	at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.getDetails(GoogleClientSecrets.java:80)
	at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.<init>(GoogleAuthorizationCodeFlow.java:211)
	at tech.sharelock.google.drive.AdminSDKReportsQuickstart.getCredentials(AdminSDKReportsQuickstart.java:65)
	at tech.sharelock.google.drive.AdminSDKReportsQuickstart.main(AdminSDKReportsQuickstart.java:74)

it is the same stack trace

This is my configuration

image

image

The downloaded json is what i use as credential.json Where am I doing wrong?

gianluca-valentini avatar Sep 27 '22 16:09 gianluca-valentini