GoogleJsonResponseException 403 Forbidden PERMISSION_DENIED

时间:2016-03-28 20:08:24

标签: android google-drive-api

我使用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();

2 个答案:

答案 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。

当我禁用此开发模式或安装发行版时,一切正常。