Google GoogleClientSecrets.加载失败

本文关键字:失败 加载 GoogleClientSecrets Google | 更新日期: 2023-09-27 18:00:16

我正试图通过控制台应用程序和c#访问我的谷歌驱动器帐户。我已遵循以下说明:https://developers.google.com/drive/v3/web/quickstart/dotnet并且应用程序编译得很好。当第一次运行应用程序时,调试器问我GoogleClientSecrets.cs在哪里。我点击了取消。现在每次我打电话:

var d = GoogleClientSecrets.Load(new FileStream("client_secret.json", FileMode.Open));

我得到以下对象:

d:
Installed   null    Google.Apis.Auth.OAuth2.ClientSecrets
Secrets     'd.Secrets' threw an exception of type 'System.InvalidOperationException'   Google.Apis.Auth.OAuth2.ClientSecrets {System.InvalidOperationException}
Web     null    Google.Apis.Auth.OAuth2.ClientSecrets

当然,正因为如此,GoogleWebAuthorizationBroker.AuthorizeAsync方法失败了。我打开了google仪表板中的API,json文件(client_secret.json)确实存在于运行二进制文件的目录中。

关于如何使加载函数工作的建议?

Google GoogleClientSecrets.加载失败

问题是一个损坏的.json文件。真不敢相信我花了几个小时在这上面。案件结案。

请参阅https://github.com/googleapis/google-api-dotnet-client/issues/1309#issuecomment-437479636

代码混淆了服务凭据和oauth凭据。…如果你已经下载了服务凭据,那么就不要使用GoogleWebAuthorizationBroker,这是针对oauth的。创建这样的凭据:var cred=GoogleCredentials.FromFile().CreateScoped();

您还需要在CreateScoped()之后使用.CreateWithUser(),让服务帐户代表用户行事。

我刚才已经证实了这一点。