oauth2 для сервисного аккаунта

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

Я хочу, чтобы этот скрипт отображал и добавлял события в Календарь Google. У меня есть много документации и примеров для этого.

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

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

Чего я не понимаю, так это как аутентифицировать учетную запись службы. Я продолжаю видеть код вроде:

oauthConfig.setConsumerKey("анонимно"); oauthConfig.setConsumerSecret («анонимно»); oauthConfig.setRequestTokenUrl( "https://www.google.com/accounts/OAuthGetRequestToken?scope="+область); oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken"); oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");

Как изменить это, чтобы использовать учетную запись службы? Я не понимаю, если/как я передаю идентификатор клиента/адрес электронной почты учетной записи службы. Мне также непонятно, как передать открытые/закрытые ключи.

Кто-нибудь может помочь?


person user1126515    schedule 08.02.2014    source источник


Ответы (1)


В документации Drive API есть действительно хороший пример использования сервисной учетной записи. В нем есть пошаговые инструкции по созданию учетной записи службы, а также несколько примеров кода. Единственное, вам придется изменить область действия на Calendar API из Drive API.

https://developers.google.com/drive/web/delegation

person Emily    schedule 10.02.2014
comment
Является ли консоль администратора Google Apps абсолютным требованием? - person user1126515; 11.02.2014
comment
За разрешение двухстороннего OAuth — да. :( - person Emily; 11.02.2014
comment
НО, если вы собираетесь публиковать его как приложения из магазина, оно должно быть установлено для вашего пользователя автоматически в консоли администратора, когда они проходят процесс установки. - person Emily; 11.02.2014
comment
Мне нужно решение, независимое от консоли администратора Google Apps. Все, что я хочу сделать, это позволить любому читать/добавлять события в Календарь Google. Я ограничиваю доступ к календарю с помощью некоторого Javascript, который позволяет только чтение/добавление. Единственным другим ограничением является то, что я не хочу, чтобы кому-либо приходилось вводить идентификатор пользователя/пароль. Доступ к календарю принадлежит мне - я хочу, чтобы люди читали/добавляли его без необходимости вводить идентификатор пользователя/пароль. Мне сказали, что сервисные учетные записи — лучший способ добиться этого. Это правильно? Знаете ли вы что-нибудь об аутентификации Oauth2 через Google App Engine? - person user1126515; 11.02.2014