因此,我从 Nuget 下载了 Cloud Storage 的 .NET 客户端(Google.Apis.Storage.v1,版本=1.8.1.10),使用开发人员控制台创建了一个项目,生成了 API 密钥,启用了计费,创建了一个存储桶。
但是当我尝试列出存储桶中的所有对象时,我收到此错误(需要登录)。有什么想法吗? Cloud Storage 及其 JSON API 在控制台中启用。
这是我的示例应用程序的完整代码:https://gist.github.com/chester89/5d6a62633abab3969c32 https://gist.github.com/chester89/5d6a62633abab3969c32
API 密钥是一个简单的标记,表示“此调用与此项目关联”。它对于管理配额很有用,但它不是秘密,并且不会将调用者验证为任何特定用户。匿名呼叫者可能无法浏览您的存储桶,并且您的呼叫是匿名进行的。
您可以通过授予匿名用户对您的存储桶的读取权限来解决此问题,但更好的主意是对您的请求进行身份验证。对于如何执行此操作,您有多种选择,具体取决于您是要使用自己的个人凭据进行调用还是要使用与您的应用程序关联的服务帐户。完整的说明记录在此处:https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth
假设您想要以您自己的身份进行身份验证并且您正在编写一个将在桌面上运行的应用程序,下面是一个示例:
UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { BooksService.Scope.Books },
"user", CancellationToken.None, new FileDataStore("Books.ListMyLibrary"));
}
// Create the service.
var service = new BooksService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Books API Sample",
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)