Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write to GoogleSheet via API with Java

I am trying to write a value to a cell with Google Sheet API with Java. For reading I used guide from Java Quickstart which worked fine for me.

For writing to Google Sheet I use:

service.spreadsheets().values().update(spreadsheetId, "Sheet1!A4:H", response).execute();

This function outputs the following error while run:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Request had insufficient authentication scopes.",
    "reason" : "forbidden"
  } ],
  "message" : "Request had insufficient authentication scopes.",
  "status" : "PERMISSION_DENIED"
}

As a Authentication Scope I am using

private static final List<String> SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS);
like image 462
Alex Kolo Avatar asked May 30 '16 08:05

Alex Kolo


2 Answers

Apparently there were several issues together:

  1. Delete credentials that were stored at /Users/XXX/.credentials.
  2. Change Scopes to SheetsScopes.SPREADSHEETS.
  3. Google Sheet Share and Edit options at on Sheet itself.

Now it works! Thank you guys for help

like image 163
Alex Kolo Avatar answered Nov 14 '22 13:11

Alex Kolo


I was having the same issue. I resolved the problem that was in the scope. I just changed

SheetsScopes.SPREADSHEETS.READONLY

To

 SheetsScopes.SPREADSHEETS

And it works very well.

like image 38
TSR Avatar answered Nov 14 '22 14:11

TSR