У меня есть веб-приложение MVC, которое обновляет продукты на сайте электронной коммерции. Теперь мы зарегистрировались в Google Merchant Center, и моя цель - обновить продукты одновременно. Я использую API Google.Apis.ShoppingContent.v2_1.
Это мои учетные данные API
Это моя учетная запись службы API
Я использовал адрес электронной почты учетной записи Google для пользователя, а также адрес электронной почты учетной записи службы, но с тем же результатом.
У меня есть следующее
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 \ nUser не может получить доступ к учетной записи 123456789 [401] \ r \ nErrors [\ r \ n \ tMessage [Пользователь не может получить доступ к учетной записи 123456789] Местоположение [-] Причина [auth / account_access_denied] Домен [content.ContentErrorDomain] \ r \ n] \ r \ n "