我有一个 MVC Web 应用程序,可以更新电子商务网站上的产品。现在我们注册了谷歌商家中心,我的目标是同时更新产品。我正在使用 Google.Apis.ShoppingContent.v2_1 API。
我已经为用户使用了谷歌帐户电子邮件地址以及服务帐户电子邮件,但结果相同。
我有以下
static string[] Scopes = { ShoppingContentService.Scope.Content};
static string P12Secret = @"~\Content\XXXXXX-5cab03fb904a.p12";
static string userName = "serviceaccount@gserviceaccount.com";
static public async Task RunTest2()
{
var certificate = new X509Certificate2(P12Secret, "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(userName)
{
Scopes = Scopes
}.FromCertificate(certificate));
var service = new ShoppingContentService(new BaseClientService.Initializer
{
ApplicationName = ApplicationName,
HttpClientInitializer = credential
});
try
{
var result = await service.Products.List("My MerchantID").ExecuteAsync();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
当我执行 var result = await service.Products.List("My MerchantID").ExecuteAsync(); 我得到错误
e.Message = "Google.Apis.Requests.RequestError\n用户无法访问帐户 123456789 [401]\r\n错误 [\r\n\tMessage[用户无法访问帐户 123456789] 位置[-] 原因[auth/account_access_denied] 域[content.ContentErrorDomain]\r\n]\r\n"