Программно принять приглашение Google My Business для учетной записи службы - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь использовать служебную учетную запись для получения местоположений / отзывов с помощью Google My Business API.

На данный момент у меня есть:

  1. Создан проект в консоли разработчика
  2. Включен доступ к Google My Business API (он был одобрен / внесен в белый список Google)
  3. Создан сервисный аккаунт со связанной идентификацией OAuth
  4. Приглашен идентификатор OAuth (т.е. учетной записи службы) в качестве менеджера для местоположения Google My Business

Я могу видеть приглашение при программном перечислении приглашений из https://mybusiness.googleapis.com/v4/accounts/[ACCOUNT NAME]/invitations, используя образец клиента .NET Google, доступный для загрузки из https://developers.google.com/my-business/samples

Однако, когда я пытаюсь принять приглашение через https://mybusiness.googleapis.com/v4/accounts/[ACCOUNT NAME]/invitations/[INVITATION NAME]:accept, запрос не выполняется с ошибкой сервера 500.

При создании экземпляра MyBusinessService я сначала создаю учетные данные учетной записи службы, например:

ServiceAccountCredential credential;

using (Stream stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read, FileShare.Read))
{
   credential = (ServiceAccountCredential)GoogleCredential
                   .FromStream(stream)
                   .CreateScoped(new [] { "https://www.googleapis.com/auth/plus.business.manage" })
                   .UnderlyingCredential;
}

Далее я создаю инициализатор, например:

var initializer = new BaseClientService.Initializer()
{
   HttpClientInitializer = credential,
   ApplicationName = "My GMB API Client",
   GZipEnabled = true,
};

Наконец, я создаю MyBusinessService экземпляр, например: var service = new MyBusinessService(initializer);

Я могу перечислитьnvitations with:

service.Accounts
       .Invitations
       .List("[ACCOUNT NAME]")
       .Execute()
       .Invitations;

Однако попытка принять приглашение не удалась:

service.Accounts
       .Invitations
       .Accept(null, "[INVITATION NAME]")
       .Execute();

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

Или, возможно, есть какой-то другой способ принять приглашение, чтобы служебная учетная запись могла получать отзывы Google My Business для наших местоположений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...