Аутентификация с ключом p12 дает ошибку Пользователь не может получить доступ к учетной записи

У меня есть веб-приложение MVC, которое обновляет продукты на сайте электронной коммерции. Теперь мы зарегистрировались в торговом центре Google, и моя цель - одновременно обновлять продукты. Я использую API Google.Apis.ShoppingContent.v2_1.

Это мои учетные данные API  Учетные данные API

Это моя учетная запись службы API  Учетные данные API 2

Я использовал адрес электронной почты учетной записи Google для пользователя, а также адрес электронной почты учетной записи службы, но с тем же результатом.

У меня есть следующие

    static string[] Scopes = { ShoppingContentService.Scope.Content};
    static string P12Secret =  @"~\Content\XXXXXX-5cab03fb904a.p12";
    static string userName = "[email protected]";
    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 "


person Hennie van den Berg    schedule 27.05.2019    source источник


Ответы (1)


Documentaiton

Учетные записи служб - это специальные учетные записи Google, которые могут использоваться приложениями для программного доступа к API Google через OAuth 2.0. Учетная запись службы использует поток OAuth 2.0, не требующий авторизации человека. Вместо этого он использует ключевой файл, доступ к которому имеет только ваше приложение. В этом руководстве рассказывается, как получить доступ к Content API for Shopping с помощью сервисных аккаунтов.

Учетные записи служб должны быть предварительно авторизованы. В противном случае у него нет доступа к каким-либо данным.

Пользователь не может получить доступ к учетной записи 123456789

Означает, что у него нет доступа, вы забыли предоставить ему доступ. Проверьте Documentaiton, найдите раздел ниже, следуйте всем ступеней.

введите здесь описание изображения

person DaImTo    schedule 27.05.2019
comment
Большое тебе спасибо. Не могу поверить, что я это пропустил. Сейчас работает на 100%. - person Hennie van den Berg; 28.05.2019