Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google + PHP = Zend Framework ?

Dd3f18c87b851137000c7427d7bd5d32?s=47 fwdays
November 14, 2011

Google + PHP = Zend Framework ?

Доклад о возможностях интеграции сервисов Google с приложениями на PHP.

Dd3f18c87b851137000c7427d7bd5d32?s=128

fwdays

November 14, 2011
Tweet

More Decks by fwdays

Other Decks in Programming

Transcript

  1. Google + PHP = Zend Framework ? Александр Стешенко Norada

    http://profiles.google.com/lcfsoft
  2. Google + PHP = ?

  3. Что можно делать с Google • Идентификация с помощью Google

    Account • Авторизация приложения на доступ к ресурсам Google Account • Работа с ресурсами Google Account с помощью API • Использование аккаунта Google Apps и разработка приложения для Google Apps Marketplace
  4. Идентификация

  5. None
  6. None
  7. None
  8. None
  9. Google Federated Login • OpenID 2.0 + Extensions Идентификация пользователей

    через Google Account • Получение данных пользователей • Идентификация и авторизация одновременно
  10. Интеграция Google Federated Login Zend Framework v1 Компонент Zend_OpenId +

    = ?
  11. Интеграция Google Federated Login Zend Framework v1 Компонент Zend_OpenId +

    = :( Zend_OpenId не поддерживает OpenID 2.0
  12. Интеграция Google Federated Login Zend Framework v2 Компонент Zend\OpenId +

    = :| • Zend\OpenId поддерживает OpenID 2.0 • "Клиентская" часть ожидается к концу текущего года • Разрабатывается Виктором Фараздаги
  13. Библиотеки от компании Janrain • Версии библиотеки для PHP5, PHP4,

    Python, Ruby • Поддержка как Relying Party так и Identity Provider • "Поддержка" Google http://www.janrain.com/openid-enabled
  14. Использование библиотеки

  15. Авторизация доступа

  16. Способы авторизации ClientLogin (логин и пароль) AuthSub (проприетарный аналог OAuth)

    OAuth 1.0 OAuth 2.0 (Experimental)
  17. Способы авторизации ClientLogin (логин и пароль) AuthSub (проприетарный аналог OAuth)

    OAuth 1.0 OAuth 2.0 (Experimental)
  18. None
  19. None
  20. Область действия (scope) https://mail.google.com/ https://www.google.com/m8/feeds/ https://www.google.com/calendar/feeds/ • возможна авторизация доступа

    к нескольким областям сразу
  21. Интеграция. Zend_Oauth • OAuth 1.0 • доступен в составе ZF

    с версии 1.10 • разработчик Padraic Brady • используется в примерах в документации некоторых из API Google
  22. Использование Zend_Oauth

  23. APIs

  24. Протоколы доступа к API • Google Data Protocol • RESTful

    JSON • Прочие (SOAP, XML, RESTful и т.д.) http://code.google.com/more/
  25. Google Data Protocol • Большинство APIs на данный момент работают

    по этому протоколу • REST архитектура • Является частным случаем протокола Atom Protocol
  26. Google Data Protocol Entry

  27. Интеграция. Zend_Gdata • Доступен в составе ZF с первых версий

    • Разрабатывался и поддерживался сотрудниками Google • Официальная библиотека Google для доступа к Google Data Protocol APIs • Портирован в Zend Framework 2.0
  28. Использование Zend_Gdata

  29. Zend_Gdata + Zend_Oauth • Использование ранее полученного токена доступа (Zend_Oauth_Token_Access)

    • Полученный HTTP клиент сам выполнит необходимые действия и подпишет запрос для авторизации.
  30. JSON RESTful APIs • Google+ • Google Tasks • Blogger

    • Google Translate
  31. Пример формата данных

  32. Интеграция. Библиотека от Google • http://code.google.com/p/google-api-php-client/ • Включает oHTTP клиент

    oАвторизация через OAuth oКеш • Обертки для объектного представления сущностей из JSON
  33. Класс "Задача" • monkey code ? • зависимости • json_decode()

  34. Zend Framework инфраструктура • Zend_Oauth • Zend_Http_Client

  35. Работа с GMail Чтение / Запись Отправка

  36. Интеграция. Zend_Mail SMTP IMAP

  37. XOAUTH механизм авторизации OAuth область действия (scope): https://mail.google.com/

  38. Zend_Mail + Zend_Oauth

  39. Google Apps

  40. Что такое Google Apps • продукты Google на собственном домене

    • управление пользователями и группами в организации
  41. Zend_Gdata для Google Apps Доступно только Google Provisioning API Администрирование

    пользователей
  42. Google Apps Marketplace

  43. Установка приложения

  44. Single Sign-On • Доступ к приложению из универсальной Google Navigation

    Panel • Отсутствие необходимости идентифицироваться
  45. Интеграция. Janrain OpenID Ссылка в Google Universal Navigation ведет на

    http://example.com/init-login.php?domain=mydomain.com
  46. 2-legged OAuth • Приложение авторизовано действовать от имени пользователей •

    OAuth 1.0
  47. Интеграция. 2-legged Zend_Oauth

  48. Выводы

  49. Итого + ≈ • Отсутствие компонента для OpenID • Отсутствие

    OAuth 2.0 • Отсутствие реализаций для многих второстепенных API в компоненте Zend_Gdata • Нет реализации JSON RESTful APIS (например Google+)
  50. Спасибо за внимание! :)