Создание Adobe AIR клиента для социальных сетей на примере...
Click here to load reader
-
Upload
rostyslav-siryk -
Category
Technology
-
view
2.480 -
download
2
description
Transcript of Создание Adobe AIR клиента для социальных сетей на примере...
Создание Adobe AIR Создание Adobe AIR клиента для социальных клиента для социальных сетей на примере Twitterсетей на примере Twitter
Нетрибовский Дмитрий, компания «Абсолютист»
Социальная сетьСоциальная сеть Многопользовательский веб-сайт, Многопользовательский веб-сайт,
контент которого наполняется контент которого наполняется самими участниками сетисамими участниками сети
Сервис представляет собой Сервис представляет собой автоматизированную социальную автоматизированную социальную среду, позволяющую общаться среду, позволяющую общаться группе пользователей, группе пользователей, объединенных общими интересамиобъединенных общими интересами
Примеры социальных сетейПримеры социальных сетей
FacebookFacebook MySpaceMySpace OdnoklassnikiOdnoklassniki VkontakteVkontakte TwitterTwitter И много других…И много других…
Доступ к информацииДоступ к информации
Web-interfaceWeb-interface
AApplication programming pplication programming interface (API)interface (API)
Имеет некоторые ограниченияИмеет некоторые ограничения
TwitterTwitter
Сервис, представляющий собой Сервис, представляющий собой систему микроблогов, систему микроблогов, позволяющий пользователям позволяющий пользователям отправлять короткие текстовые отправлять короткие текстовые заметки, используязаметки, используя
веб-интерфейсвеб-интерфейс SMSSMS сторонние программы-клиентысторонние программы-клиенты
Twitter APITwitter API Позволяет создавать приложения, Позволяет создавать приложения,
веб-сайты, виджеты и другие веб-сайты, виджеты и другие проекты, которые проекты, которые взаимодействуют с взаимодействуют с TwitterTwitter
Позволяет получить доступ ко Позволяет получить доступ ко всем возможностям всем возможностям TwitterTwitter,, не не используяиспользуя
веб-интерфейс веб-интерфейс twitter.comtwitter.com
Особенности Особенности Twitter APITwitter API
Полностью основан на Полностью основан на HTTPHTTP ((вызывается вызывается URL URL с некоторыми с некоторыми параметрами)параметрами)
Формат возвращаемых значений: Формат возвращаемых значений: XML, JSON,XML, JSON, RSS RSS и и AtomAtom в некоторых в некоторых методах возможно использование методах возможно использование только определенных форматовтолько определенных форматов..
Ограничения Ограничения Twitter APITwitter API
<=<= 1000 обновлений статуса в день 1000 обновлений статуса в день <= <= 250250 прямых сообщений в день прямых сообщений в день <=<= 150 150 запросов на получение запросов на получение
данных в часданных в час
Цель: избежать использования сервиса Цель: избежать использования сервиса не по назначению, обезопасить не по назначению, обезопасить сервер от больших нагрузок.сервер от больших нагрузок.
Еще одно ограничение…Еще одно ограничение…
Доступ Доступ swfswf файлов к файлов к twitter.comtwitter.com закрзакрыт в crossdomain.xmlыт в crossdomain.xml
Результат: невозможность Результат: невозможность использования использования flashflash приложений приложений для доступа к для доступа к Twitter API Twitter API напрямуюнапрямую
Выход?Выход?Использовать Использовать php php прокси, чтобы обойтипрокси, чтобы обойти
ограничения безопасности.ограничения безопасности.
Например, такой: Например, такой: proxy.phpproxy.php
И вместо вызоваИ вместо вызоваhttp://twitter.com/statuses/user_timeline/http://twitter.com/statuses/user_timeline/useruser.xml.xml
вызовемвызовемhttp://http://mymy
server.com/proxy.php?url=http://twitter.com/statuses/server.com/proxy.php?url=http://twitter.com/statuses/user_timeline/user_timeline/useruser.xml.xml
Результат: все работаеРезультат: все работаетт
<?php <?php $url = $_GET['url'];$url = $_GET['url'];readfile($url);?>readfile($url);?>
Все работает, но…Все работает, но…
Вспомним ограничение:Вспомним ограничение:
<=<= 150 150 запросов в часзапросов в час
Запрсы бывают:Запрсы бывают:• в рамках учетной записи пользователяв рамках учетной записи пользователя• в рамках в рамках IP IP адресаадреса
В итоге: В итоге: через некоторое время через некоторое время proxy.phpproxy.php
перестанет получать доступ к перестанет получать доступ к twitter APItwitter API..
Почему Почему Adobe AIR?Adobe AIR?
crossdomain.xmlcrossdomain.xml не влияет на не влияет на права доступаправа доступа
У каждого пользователя У каждого пользователя свой свой IPIP адресадрес
Кросс-платформенностьКросс-платформенность ММы все-таки разрабатываем ы все-таки разрабатываем flash flash
приложенияприложения……
Создание клиента. Создание клиента. Авторизация.Авторизация.
Способ 1:Способ 1:• Используя протокол Используя протокол OAuthOAuth
(Более сложный и более безопасный)(Более сложный и более безопасный) Способ 2:Способ 2:
• Используя Используя Basic Access AuthenticationBasic Access Authentication
(Менее сложный и менее безопасный)(Менее сложный и менее безопасный)
((подробнее подробнее в документации в документации Twitter)Twitter)
Создание клиентаСоздание клиента.. Получение/отправка данныхПолучение/отправка данных
Шаг1. Сформировать запросШаг1. Сформировать запросurl=url=http://twitter.com/statuses/public_timeline.xml?http://twitter.com/statuses/public_timeline.xml?
count=5count=5
Шаг2. Шаг2. Отправить запросОтправить запросurlLurlLoader.load(oader.load( new UrlRequest( url ) new UrlRequest( url ) ))
Шаг3. Обработать результатШаг3. Обработать результат(Исходя из запрошенного формата)(Исходя из запрошенного формата)
Подробно про запросы написано здесь:Подробно про запросы написано здесь:http://apiwiki.twitter.com/Twitter-API-Documentationhttp://apiwiki.twitter.com/Twitter-API-Documentation
На что обратить внимание при На что обратить внимание при создании клиента для создании клиента для TwitterTwitter
Следить за количством Следить за количством сделанных/оставшихся запросовсделанных/оставшихся запросов
Исходя из этого подобрать (настраивать) Исходя из этого подобрать (настраивать) оптимальное время обновления данныхоптимальное время обновления данных
Кэшировать Кэшировать полученнполученные данныеые данные Длина сообщения не может превышать Длина сообщения не может превышать
140 символов140 символов Дублируемые сообщения не публикуютсяДублируемые сообщения не публикуются Функциональность сервиса все время Функциональность сервиса все время
развивается и меняетсяразвивается и меняется
Клиент для игры в шахматы Клиент для игры в шахматы через через TwitterTwitter..
Возможности:Возможности:1.1. АвторизацияАвторизация
2.2. Получение списка друзей и выбор из них Получение списка друзей и выбор из них оппонентаоппонента
3.3. Начало новой игры/продолжение ранее начатойНачало новой игры/продолжение ранее начатой
4.4. Публикация ссылки с ходом на Публикация ссылки с ходом на TwitterTwitter
5.5. СчитСчитывание хода противника с ывание хода противника с TwitterTwitter
6.6. При длине сообщения, превышающей 140 При длине сообщения, превышающей 140 символов, сворачивание ссылки на ход при символов, сворачивание ссылки на ход при помощи внешнего сервисапомощи внешнего сервиса
7.7. Отображение позиции в игреОтображение позиции в игре
8.8. Чат через публикацию сообщений в Чат через публикацию сообщений в TwitterTwitter
Клиент для игры в шахматы Клиент для игры в шахматы через через TwitterTwitter..
• Ходы остаются “записаны” Ходы остаются “записаны” в в Twitter Twitter и игра может быть и игра может быть воспроизведенавоспроизведена
• Другие пользователи могут Другие пользователи могут просмотреть игрупросмотреть игру
Клиент для игры в шахматы через Клиент для игры в шахматы через TwitterTwitter. . Демонстрация.Демонстрация.
TwitterTwitter КлиентКлиент
Вопросы?Вопросы?