.net ArgumentNullException:“;baseUri“;将文件上载到Google Drive时为空

.net ArgumentNullException:“;baseUri“;将文件上载到Google Drive时为空,.net,google-drive-api,.net,Google Drive Api,我正在按照这里的教程将文件上载到Google Drive: 我已经为我的主帐户创建了一个Id和密码,有了这些信息,我可以上传到我的两个帐户中的任何一个(从%AppData%/Google…)删除身份验证令牌 然而,一个客户给了我们他的谷歌账户,所以我们可以尝试让一切都对他有效,但对他的账户无效。我们可以通过web界面上传和下载文件,没有任何问题,但我的应用程序无法使用 我注意到的一个区别是,我客户的帐户没有谷歌电子邮件地址;是的name@myclient.com,所以我用我的工作电子邮件地址创

我正在按照这里的教程将文件上载到Google Drive:

我已经为我的主帐户创建了一个Id和密码,有了这些信息,我可以上传到我的两个帐户中的任何一个(从%AppData%/Google…)删除身份验证令牌

然而,一个客户给了我们他的谷歌账户,所以我们可以尝试让一切都对他有效,但对他的账户无效。我们可以通过web界面上传和下载文件,没有任何问题,但我的应用程序无法使用

我注意到的一个区别是,我客户的帐户没有谷歌电子邮件地址;是的name@myclient.com,所以我用我的工作电子邮件地址创建了一个新的google帐户,并对它进行了测试,在登录到google Drive之后,它就可以完美地工作了

问题出现在最后几行:

FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain");
request.Upload();

File file = request.ResponseBody;
Console.WriteLine("File id: " + file.Id);
此时,request.ResponseBody为null,因此,如果我只运行代码,file.Id将抛出ArgumentNullException。如果我改为进入调试模式并检查环境,则request.Progress(基类的私有属性)的状态字段设置为“Failed”,异常字段为ArgumentNullException,消息为“Argumentcan not null.ArgumentName:baseUri.”

你知道会出什么问题吗

更新: 创建服务对象的代码:

// Create the service.
var service = new DriveService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "Drive API Sample",
});  

我遇到了同样的问题,最后我发现API没有启用。 我回答了我的问题,希望能对你有所帮助

在我的情况下,我没有正确配置API设置

API配置不正确时引发ArgumentNullException的原因是报告的问题。


ResumableUpload.InitializeUpload中的第一个请求出现错误,但未报告包含“API未正确配置”的错误消息。

我通过以下步骤解决了完全相同的错误:

  • 转到(然后转到您的项目页面)
  • ->API和身份验证->API
  • 点击“驱动API”
  • 激活它

  • 然后,它应该在“激活的API”选项卡下,此错误消失。

    您有一个OAuth令牌,但没有正确的作用域

    将范围设置为:

    static string[]Scopes={DriveService.Scope.Drive,DriveService.Scope.DriveFile};
    


    在我的第一次尝试中,我只使用了
    驱动器
    ,而没有使用
    驱动器文件

    你可以发布你如何创建
    服务
    对象吗?@Tejassarma当然可以,但它只是从教程中粘贴出来的,没有任何更改。你解决了这个问题吗?@LucaTrazzi不,我找不到解决方案。@JaimePardos我面临着同样的错误,你找到解决这个问题的方法了吗?我无法测试,但作为近两年来第一个有希望的答案,我会接受它。非常感谢。我正在使用一个示例,其中他们将cred存储在一个文件中。您必须删除此文件并扩展范围。