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)确实存在于运行二进制文件的目录中。
关于如何使加载函数工作的建议?
问题是一个损坏的.json文件。真不敢相信我花了几个小时在这上面。案件结案。
请参阅https://github.com/googleapis/google-api-dotnet-client/issues/1309#issuecomment-437479636
代码混淆了服务凭据和oauth凭据。…如果你已经下载了服务凭据,那么就不要使用GoogleWebAuthorizationBroker,这是针对oauth的。创建这样的凭据:var cred=GoogleCredentials.FromFile().CreateScoped();
您还需要在CreateScoped()之后使用.CreateWithUser(),让服务帐户代表用户行事。
我刚才已经证实了这一点。