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

Deleting a message gives GoogleJsonResponseException: Request had insufficient authentication scopes.

Open coolrb opened this issue 2 years ago • 0 comments
trafficstars

Summary

I am trying to delete a message using gmail.users().messages().delete("me", msgId).execute(); But it gives exception. However sending the message works.

GoogleJsonResponseException: Request had insufficient authentication scopes.

private Credential authorize(final NetHttpTransport HTTP_TRANSPORT) throws IOException {

    Path file = ResourceUtils.getFile(credentialFilePath).toPath();
    log.info(file.toUri().getPath());
    InputStream in = new FileInputStream(file.toFile());

    GoogleClientSecrets clientSecrets =
            GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

    List<String> scopes = new ArrayList<>();
    scopes.add(GmailScopes.GMAIL_MODIFY);


    // Build flow and trigger user authorization request.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, scopes)
            .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(tokenDirectoryPath)))
            .setAccessType("offline")
            .build();
    LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
    Credential credential = new AuthorizationCodeInstalledApp(flow, receiver).authorize(email);
    
    return credential;
}

Gmail Quickstart - Delete message

Message should get deleted

Generates exception

Specifications

  • openjdk 17.0.6 2023-01-17
  • Mac

coolrb avatar Mar 19 '23 18:03 coolrb