当我使用调试控制台执行C#/。NET代码以创建新项目(ProjectResource.Create(...)
)时,收到“ 403 Forbidden”错误。但是,我仍然收到Project
响应,并且API在驱动器中正确创建了一个文件。由于Google不会公开其API下发生的情况,因此我不知道为什么在调试控制台中会看到该消息。没有错误传播到运行时,我有一种奇怪的感觉,这是生产中留下的错误输出错误消息。
为什么会发生这种情况,我可以删除/防止出现此错误吗?
代码:
var cpr = new CreateProjectRequest
{
Title = name
};
scriptID = projectResource.Create(cpr).Execute().ScriptId;
错误:
呼叫者没有权限
错误对象:
Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
Message[The caller does not have permission] Location[ - ] Reason[forbidden] Domain[global]
]
另一种可能性可能是我设置Google控制台云的方式存在问题,但是考虑到该功能仍然完好无损,我不禁认为自己做得正确。此外,我的证书授权全部成功,没有错误。
我通过以下方式授权我的服务:
scriptService = new ScriptService(new BaseClientService.Initializer()
{
ApiKey = apiKeyUser,
HttpClientInitializer = credential,
ApplicationName = applicationName
});
projectResource = new ProjectsResource(scriptService);
我的API密钥设置为可与Apps Script API和Drive API一起使用。
我的OAuth客户端ID为type: other
(这是桌面应用程序的唯一方法)。
有什么想法吗?
PS在我的努力中,我尝试使用DriveService
做同样的事情。我仍然在Debug中收到相同的错误,可惜它仍然像上面一样工作。
File body = new File()
{
MimeType = "google-apps.script",
Name = name,
};
var test = driveService.Files.Create(body);
test.Fields = "id";
var f = test.Execute();