API контактов Google - без перенаправления - PullRequest
2 голосов
/ 17 марта 2010

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

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

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

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

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

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

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

Спасибо!

1 Ответ

7 голосов
/ 20 марта 2010

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

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

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

...