2016-10-21 4 views
0

есть служба, в которой можно авторизовать использование своей учетной записи Google. Мне нужно автоматизировать рабочий процесс с этой службой, поэтому мое программное обеспечение должно войти в систему с данным аккаунтом Google. Но, как я никогда этого не делал, прежде чем я не знаю, с чего начать. Большинство связанных ответов предлагают отобразить страницу авторизации для пользователя, позволяющего им вводить свой логин/пароль в своей учетной записи Google, но это не так, поскольку мое программное обеспечение должно быть полностью автоматизировано, плюс оно выполняется в режиме терминала, поэтому ни один браузер не любой человек, который должен войти в что-либо, должен быть вовлечен.Войти с учетной записью Google+ программно

Интересно, возможна ли такая автоматизация и с чего начать.

+0

Возможный дубликат http://stackoverflow.com/q/13317987/121660 – captncraig

+0

Этот ответ предполагает, что делает простой веб-сервер для выполнения [поток OAuth] (https: // developers.google.com/+/web/api/rest/oauth), пока не получите токен обновления. Затем вы можете дать токен обновления в своем приложении командной строки для обмена действительным токеном доступа. Вид бега, но он есть. – captncraig

+0

@captncraig извините, но я не думаю, что вы здесь. Да, вопрос аналогичный, но я не нахожу ответа, кроме запуска веб-сервера, и прошу пользователя вводить пароль все время. – Gonzalez

ответ

0

Стандартный способ аутентификации пользователя с помощью Google осуществляется через трехногий поток аутентификации oauth (в браузере). Вы можете сделать это в дороге с помощью oauth2 или с более всеобъемлющий пакет, как goth

Общий поток: пользователь

  1. перенаправлять на целевую страницу на сайте Google, где они побудила предоставить вам доступ.
  2. google сделает обратный звонок на ваш сайт с помощью специального кода.
  3. вы делаете еще один запрос на обмен этим кодом для токена доступа и токена обновления.
  4. Используйте токен доступа для использования google apis и используйте токен обновления, чтобы получить новый токен доступа в любое время, когда он истекает.

Это более подробно, чем это, и есть много возможностей для обеспечения безопасности, но это общая идея.

Теперь, как вы уже сказали, ваше приложение является командной строкой, поэтому выполнить этот поток сложно. К сожалению, вам может понадобиться сделать это один раз, просто чтобы получить токен обновления. После этого вы можете отправить его в свое приложение: myapp -google-token=FOOBAR123, и ваше приложение может обменять токен рефери для действительного токена доступа.

Может быть, это поможет: https://github.com/burnash/gspread/wiki/How-to-get-OAuth-access-token-in-console%3F