Как изменить имя/адрес электронной почты "учетной записи службы" Google API

Я использую Google API для создания электронной таблицы на google Диске.

  • В моем приложении есть ссылка "загрузить в Google Doc"
  • приложение отправляет файл в Google docs и делится им с пользователем.
  • пользователь может увидеть его в документах google.

все работает хорошо.

проблема заключается в идентичности учетной записи службы, разделяющей doc. Это сгенерированный идентификатор. Я хочу, чтобы он был заклеймен моим приложение.

это возможно? -

It is this random number. I want it to be branded. Is this possible?

2 ответов


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

enter image description here

единственный способ изменить адрес электронной почты-удалить его и создать новый, но снова вы застряли бы с тем, который создал 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 

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