2017-02-08 2 views
0

Мы создали приложение, которое пытается использовать учетную запись службы для доступа к API-интерфейсу Google. Мы сами управляем приложением, но календари, которые мы пытаемся получить, находятся на отдельной учетной записи GSuite. У нас был администратор GSuite, выполнив шаги here, чтобы разрешить доступ к нашему приложению на основе идентификатора клиента и области полномочий «https://www.googleapis.com/auth/calendar.readonly».Google Calendar API FreeBusy Access с использованием учетной записи службы

Теперь, когда вы используете учетную запись службы, чтобы попытаться получить доступ к данным календаря пользователя, я немного смущен тем, как правильно форматировать запрос. В частности, если я не включаю параметр «sub», запрос работает в том смысле, что мне предоставлен токен, и я могу перейти к последующему запросу доступа к календарям. Однако в этом последующем запросе я возвращаюсь с ошибками в пользовательских календарях, указывающих, что они не найдены, т.е. у меня нет доступа. Ниже приводится запрос:

String jwtClaimset = '{'+ 
          '"iss":"[email protected]",'+ 
          '"sub":"[email protected]",'+ 
          '"scope":"https://www.googleapis.com/auth/calendar.readonly",'+ 
          '"aud":"https://www.googleapis.com/oauth2/v4/token",'+ 
          '"exp":'+expTime+','+ 
          '"iat":'+requestTime+ 
          '}'; 

Однако, то, если я включаю определенный электронный/имя пользователя из GSuite счета в «олицетворять», я не могу просить фишку на всех, я представлены ниже ошибка:

"error_description": "Client is unauthorized to retrieve access tokens using this method."

так что мой вопрос, мне нужен параметр юга, чтобы получить доступ к любому из календарей пользователей в GSuite и если да вы знаете, почему представляется, что ошибка?

ответ

2

И я понятия не имею, что произошло, возможно, это просто потребовалось для разрешения/доступа к GSuite для обновления, но теперь это работает.

Для этого мы используем подпараметр и его работу, используя (как мы подозревали, нам нужны).

+0

Hi George. Я пытаюсь написать некоторые API в NodeJs, которые могут отображать события пользователей и создавать события в своих календарях. Почтовая учетная запись нашей организации и календарь находятся на gsuite. Я попробовал пакет googleapis для nodejs с проверкой подлинности на основе JWT, но он не показывает никаких событий для основного пользователя. Не знаете, как учетные данные учетной записи службы будут выдавать себя за другие учетные записи пользователей. Не могли бы вы направить меня через процесс, чтобы достичь этого? –

Смежные вопросы