API контактов Google - без перенаправления

В настоящее время я работаю над веб-приложением Contact Importer (на PHP), поэтому я смогу получить адрес электронной почты из учетной записи пользователя в Gmail, Yahoo и т. Д. И использовать их в своих злых целях. Шучу, мое веб-приложение очень дружелюбное.

Я думал, что я начну с Google. Я обнаружил, что у них есть фантастический маленький API под названием Google Contacts API, который позволяет программисту, как и мне, получать доступ к контактам пользователя.

После нескольких часов борьбы и бросания дерьмового кода, я столкнулся с несколькими препятствиями. Мой главный вопрос заключается в следующем:

Можно ли как-нибудь заставить пользователя указать свое имя пользователя и пароль для Gmail на моем веб-сайте, а мой код будет получать контакты без этого неприятного перенаправления на страницу входа в Google? Это как бы рушит весь поток моего веб-приложения.

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

Единственный луч надежды, который у меня есть, - это метод аутентификации ClientLogin. Опять же, есть ловушка, иногда Google выдает вам CAPTCHA вместо токена авторизации. Опять же, пользовательский поток разрушен.

Я заметил, что у наших хороших старых друзей в Твиттере все отлично работает. Кто-нибудь знает, как они это делают?

Спасибо!

1 ответ

Решение

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

Это обеспечивает небольшое прерывание в потоке вашего веб-приложения, но OAuth обычно обеспечивает обратный вызов, так что это не должно быть большим нарушением. В обмен на это ваши пользователи могут чувствовать себя в большей безопасности, и вы можете избежать любых проблем, связанных с необходимостью хранить (а затем избавляться) пароли пользователей.

Короче говоря, я не думаю, что вы сможете обойти это. Это правда, что Twitter в настоящее время разрешает это ("Базовая аутентификация", где имя пользователя и пароль отправляются напрямую), но эта функция должна быть объявлена устаревшей к лету.

Другие вопросы по тегам