Список всех профилей Google Apps на сайте PHP

Я пытаюсь получить список всех пользователей домена Google Apps на общедоступном веб-сайте PHP (без необходимости входа посетителей сайта или каких-либо действий). У меня есть базовое понимание того, что должно произойти, но я не могу собрать все воедино. Это не может быть так сложно, как мне кажется... не так ли?

Аутентификация и авторизация: я почти уверен, что нужно использовать OAuth 2.0... но я не уверен, нужен ли ему двухсторонний или трехногий. У меня есть еще один раздел сайта, работающий с ClientLogin, но он не будет отображать профили Google Apps, а только имя и фамилию пользователя (мне нужны другие поля профиля). Я настроил доступ к API в учетной записи и все наладил (я полагаю).

Я нашел эту страницу, которая показывает, как создать URL-запрос для получения всех профилей (конечно, на всех языках, кроме PHP), но не понимаю, как это реализовать. http://code.google.com/googleapps/domain/profiles/developers_guide.html

Я также пробовал этот пример, но он просто дает мне 401 после того, как я ввожу учетные данные. http://gdatatips.blogspot.com/2008/11/2-legged-oauth-in-php.html

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

Если бы кто-нибудь мог помочь мне, обрисовав в общих чертах:

  1. Какие файлы/фреймворк мне нужно загрузить и включить в качестве начальной загрузки
  2. Какие переменные в этих файлах мне нужно обновить с помощью учетных данных Google
  3. Как я интегрирую запрос Google Profiles «Получить все профили» с PHP

Обзор ELI5 (объясните, как будто мне 5) был бы очень очень признателен... Прошу прощения за мою очевидную некомпетентность, но я читал статьи для почти неделю и никуда не делись.

Заранее благодарим за любую оказанную помощь.


person RANGER    schedule 10.01.2012    source источник
comment
В процессе OAuth вам потребуется перенаправить пользователей на страницу Google, чтобы они предоставили вам соответствующие разрешения. Но вы же не хотите, чтобы посетители входили в систему каким-либо образом?! пожалуйста, объясни   -  person ori    schedule 15.01.2012
comment
Правильно, я бы хотел, чтобы пользователи посещали страницу и видели данные (без перенаправления)... аутентификация происходила бы за кулисами. Если домен принадлежит мне, разве я не могу отображать информацию о нем на своем сайте, не запрашивая у пользователей входа в систему?   -  person RANGER    schedule 16.01.2012


Ответы (1)


Хороший вопрос.

Вам потребуется реализовать процесс Google OAuth 2.0, как описано здесь (экспериментально?), потому что кто-то (вы) должен будет предоставить вашему приложению первоначальные разрешения на доступ к Google Apps API. Шаги:

  • Зарегистрируйте свой домен в Google (не помню ссылку)
  • Перенаправить/отправить браузер на URL-адрес для аутентификации: https://accounts.google.com/o/oauth2/auth с соответствующими параметрами запроса (см. первую ссылку). Вам понадобится access_type=offline, ваша область действия будет https://apps-apis.google.com/a/feeds/user/
  • Получите код обратно, а затем обменяйте его на refresh_token, access_token и значение, указывающее, когда срок действия access_token истечет истечение срока действия. Храните их в базе данных
  • Всякий раз, когда вам нужно сделать вызов API, проверьте, истек ли срок действия вашего access_token, и при необходимости обновите его, для чего и предназначен refresh_token. Refresh_token действителен до тех пор, пока вы не отзовете доступ, который вы предоставили приложению.

Площадка OAuth очень помогает. Удачи.

person ori    schedule 16.01.2012