Skip to main content
AI Assist is now on Stack Overflow. Start a chat to get instant answers from across the network. Sign up to save and share your chats.
3 of 5
added 1627 characters in body
Java_Alert
  • 1.2k
  • 6
  • 25
  • 51

Exception in thread "main" com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized

I tried the example given here.

https://developers.google.com/sheets/quickstart/java

Its giving me this exception -

Exception in thread "main" com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307) at com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:570) at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:868) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) at SheetsQuickstart.main(SheetsQuickstart.java:106) 

I have given all the necessary permission to it.

I am using sheet api version v4

Update -

If i am passing email id in the example instead of user then its is giving me this response.

Changes -

public static Credential authorize() throws IOException { // Load client secrets. InputStream in = SheetsQuickstart.class.getResourceAsStream("/client_secret.json"); GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); // Build flow and trigger user authorization request. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(DATA_STORE_FACTORY) .setAccessType("offline") .build(); //Changed Part. Credential credential = new AuthorizationCodeInstalledApp( flow, new LocalServerReceiver()).authorize("[email protected]"); System.out.println( "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); return credential; } 

Response -

Name, Major Alexandra, English Andrew, Math Anna, English Becky, Art Benjamin, English Carl, Art Carrie, English Dorothy, Math Dylan, Math Edward, English Ellen, Physics Fiona, Art John, Physics Jonathan, Math Joseph, English Josephine, Math Karen, English Kevin, Physics Lisa, Art Mary, Physics Maureen, Physics Nick, Art Olivia, Physics Pamela, Math Patrick, Art Robert, English Sean, Physics Stacy, Math Thomas, Art Will, Math 
Java_Alert
  • 1.2k
  • 6
  • 25
  • 51