我使用Google REST Api检索电子表格列表。 当我的帐户访问它时,一切正常。
但是当我尝试使用外国帐户时,我收到了这个错误:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden {
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "The caller does not have permission",
"reason" : "forbidden"
} ],
"message" : "The caller does not have permission",
"status" : "PERMISSION_DENIED"
}
它说我无权访问我的Google脚本,但脚本设置为可见并为任何人共享。
代码:
private Object getDataFromApi(ExecutionRequest request)
throws IOException
{
if (BuildConfig.DEBUG) {
request.setDevMode(true); // it will take saved version of script and not the published one
}
// Make the request.
Operation op =
mService.scripts().run(SCRIPT_ID, request).execute();
答案 0 :(得分:0)
将范围从SheetsScopes.SPREADSHEETS_READONLY更改为SheetsScopes.SPREADSHEETS。
私有静态最终列表SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS);
答案 1 :(得分:-1)
我发现问题出现在代码中:
if (BuildConfig.DEBUG) {
request.setDevMode(true); // it will take saved version of script and not the published one
}
看起来它总是强制访问已保存的版本而不是已发布的版本。然后外国帐户无法访问已保存的版本并返回错误403。
当我禁用此开发模式或安装发行版时,一切正常。