调用ProjectResource.Create时收到403 Forbidden错误,但仍创建了项目

时间:2018-08-19 22:00:17

标签: c# google-api google-api-dotnet-client google-apps-script-api

当我使用调试控制台执行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();

0 个答案:

没有答案