我正在尝试使用带有Java的Google Sheet API将值写入单元格。 为了阅读,我使用了Java Quickstart的指南,这对我来说很好。
要写入Google表格,请使用:
service.spreadsheets().values().update(spreadsheetId, "Sheet1!A4:H", response).execute();
此功能在运行时输出以下错误:
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"
}
作为我正在使用的身份验证范围
private static final List<String> SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS);
答案 0 :(得分:12)
显然有几个问题在一起:
现在它有效! 谢谢你们的帮助
答案 1 :(得分:3)
我遇到了同样的问题。我解决了范围内的问题。 我刚刚改变了
SheetsScopes.SPREADSHEETS.READONLY
要
SheetsScopes.SPREADSHEETS
它运作良好。
答案 2 :(得分:0)
必须以交互方式使用Java API,如果您在无法弹出Web浏览器的服务器上运行它(这将允许您批准OAuth对话框),那么身份验证流程不会获得适当的证书,不会有效。
运行此功能时,您是否看到弹出的浏览器会批准OAuth对话框?如果没有,您可能会在无头会话中运行,并且需要一些其他方法来获取用户的凭据。
答案 3 :(得分:-1)
尝试更换&#34; Sheet1!A4:H&#34;用A4:H