Как изменить имя/адрес электронной почты "учетной записи службы" Google API
Я использую Google API для создания электронной таблицы на google Диске.
- В моем приложении есть ссылка "загрузить в Google Doc"
- приложение отправляет файл в Google docs и делится им с пользователем.
- пользователь может увидеть его в документах google.
все работает хорошо.
проблема заключается в идентичности учетной записи службы, разделяющей doc. Это сгенерированный идентификатор. Я хочу, чтобы он был заклеймен моим приложение.
это возможно? -
2 ответов
вы не можете изменить адрес электронной почты учетной записи службы, а также не можете указать имя пользователя в реальном мире. The учетная запись службы адрес электронной почты, созданный компанией Google консоль разработчика Google.
единственный способ изменить адрес электронной почты-удалить его и создать новый, но снова вы застряли бы с тем, который создал Google. Я подозреваю, что идентификатор клиента и адрес электронной почты пара используется для идентификация вашего заявления. Похоже на идентификатор клиента и секрет клиента, но я не могу это проверить.
Я поняла твою точку зрения было бы неплохо, если бы мы могли.
учетные записи служб Google позволяют олицетворять существующую учетную запись пользователя (для некоторых служб). Я не тестировал его на Google Диске, но я использовал его с API инструментов веб-мастера. Инструкции можно найти здесь:https://developers.google.com/identity/protocols/OAuth2ServiceAccount
чтобы суммировать их, при создании учетных данных учетной записи службы вы можете указать параметр" sub " с " адресом электронной почты пользователя, для которого приложение запрашиваю делегированный доступ."Учетная запись, к которой вы запрашиваете доступ, должна существовать и иметь разрешение на доступ к запрашиваемым услугам.
в ссылке выше Google предоставляет примеры для Java, Python и HTTP / REST, вот пример Python:
credentials = SignedJwtAssertionCredentials(client_email, private_key,
'https://www.googleapis.com/auth/sqlservice.admin',
sub='user@example.org')
Я использую Ruby Google-api-client gem (0.9.pre3) и конструктор ServiceAccountCredentials не передает параметр " sub " в родительский класс, поэтому он должен быть указан в другом шаг:
client = Google::Auth::ServiceAccountCredentials.new(json_key_io: json_key_io, scope: scope)
client.update!(sub: 'user@example.org')
client.fetch_access_token!
service = Google::Apis::WebmastersV3::WebmastersService.new
service.authorization = client
используя этот код, я могу аутентифицироваться с помощью моей учетной записи службы, и у меня есть доступ к сайтам