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 в настоящее время разрешает это ("Базовая аутентификация", где имя пользователя и пароль отправляются напрямую), но эта функция должна быть объявлена устаревшей к лету.