I am currently trying to simply delete a row off my Google Spreadsheet using the Google Sheets v4 API.
Here is the code I am using:
private void deleteRow() { List<Request> requests = new ArrayList<>(); DeleteDimensionRequest deleteDimensionRequest = new DeleteDimensionRequest(); DimensionRange dimensionRange = new DimensionRange(); dimensionRange.setStartIndex(14); dimensionRange.setEndIndex(15); deleteDimensionRequest.setRange(dimensionRange); requests.add(new Request() .setDeleteDimension(deleteDimensionRequest) ); BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest() .setRequests(requests); try { mService.spreadsheets().batchUpdate("Spreadsheet_ID", batchUpdateRequest).execute(); } catch(IOException e) { e.printStackTrace(); } } The error this function gives me is:
08-14 15:47:10.818 26956-27285/com.xxx.xxxxx.xxxxxxxx W/GoogleAuthUtil: isUserRecoverableError status: NEED_PERMISSION In my other class file, I've already indicated the scopes of permissions including drive and spreadsheets.
Here is the picture of the error: 
In the java quickstart...
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(); Credential credential = new AuthorizationCodeInstalledApp( flow, new LocalServerReceiver()).authorize("user"); System.out.println( "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); return credential; } Is this the sort of oath credential in addition to the one provided by the android quickstart that I need to include?
