7

Ich versuche, einen Wert in eine Zelle mit Google Sheet API mit Java zu schreiben. Zum Lesen habe ich Guide von Java Quickstart verwendet, der für mich in Ordnung war.Schreiben an GoogleSheet über API mit Java

Für Google Blatt Schreiben Ich benutze:

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

Diese Funktion gibt den folgenden Fehler während des Laufens:

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" 
} 

Als Authentifizierung Scope I

bin mit
private static final List<String> SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS); 
+0

Haben Sie überprüfen Sie Ihre [ 'client-secret.json'] (https://developers.google.com/sheets/guides/authorizing# installierte Anwendungen) Oder Sie haben die entsprechenden [Bereiche] (https://developers.google.com/sheets/guides/authorizing#OAuth2Authorizing) in der Autorisierungsanforderung für Spreadsheet verwendet. Ich hoffe das hilft. –

+0

Versuchen Sie, beim Erstellen des Authentifizierungsablaufs approval_prompt = false zu verwenden. – hoozecn

+0

@ Mr.Rebot Ich habe Client-secret.json neu erstellt, aber nichts geändert. Was die Bereiche betrifft - verwende ich den richtigen, wie ich in der ursprünglichen Nachricht angegeben habe? –

Antwort

9

Offenbar gab es mehrere Probleme zusammen:

  1. Anmeldeinformationen löschen, die bei /Users/XXX/.credentials gespeichert wurden.
  2. Ändern Sie Bereiche zu SheetsScopes.SPREADSHEETS.
  3. Google Sheet-Freigabe und Bearbeitungsoptionen am Blatt selbst.

Jetzt funktioniert es! Danke Jungs für Hilfe

+0

Sir, Sie haben hier ein Leben gerettet. –

+0

Löschen von Creds und Ändern des Umfangs funktionierte für mich. Danke Alex :) – Rameshwar

0

Die Java-API muss auf interaktive Weise verwendet werden, wenn Sie dies auf einem Server ausführen, der keine Web-Brows anzeigen kann Er (mit dem Sie ein OAuth-Dialogfeld genehmigen können), erhält der Authentifizierungsablauf keine korrekten Anmeldeinformationen und funktioniert nicht.

Während Sie dies ausführen, wird ein Browser angezeigt, der ein OAuth-Dialogfeld genehmigt. Ist dies nicht der Fall, wird die Sitzung wahrscheinlich kopflos ausgeführt und benötigt andere Methoden, um die Anmeldeinformationen des Benutzers zu erhalten.

1

Ich hatte das gleiche Problem. Ich löste das Problem, das im Rahmen lag. Ich habe gerade

SheetsScopes.SPREADSHEETS.READONLY 

Um

SheetsScopes.SPREADSHEETS 

Und es funktioniert sehr gut.

0

Versuchen Sie ersetzen "Sheet1 A4: H" mit A4: H

Verwandte Themen