Показаны сообщения с ярлыком vkontakte. Показать все сообщения
Показаны сообщения с ярлыком vkontakte. Показать все сообщения

02 февраля 2012

socialAPI или как делать игру для всех социалок



Сейчас очень часто flash упоминается как средство разработки игр для социальных сетей. Но социальных сетей очень много и у них совершенно разный api для работы с инструментами самой социальной сети. Не так давно я задумался над тем, что было бы замечательно сделать библиотеку которая бы могла помочь с этом вопросом. И так как у меня сейчас есть свободное время я решил этим заняться.

И я хочу продемонстрировать первую версию для работы с социальными сетями для actionscript 3.0, под названием socialAPI.


Для начала я решил взять две социальные сети со свободным доступом к песочнице: мой мир и вконтакте. Получилось просто и легко.
Кратко, о том что теперь не прийдется делать разработчику, а именно что за него сможет сделать данная библиотека:
1). Определение социальной сети по flashVars.

2). Авторизация в социальной сети.
     - для вконтакте проверка настроек доступа.

3). Получение информации о пользователе.

4). Получение списка друзей и информации о них.

5). Открытие окна приглашения друзей.

И так что нам для этого будет необходимо:
  • Скачаем саму библиотеку http://mixailflash.assembla.me и напишем код.
  • После этого выложим наше приложение в социальные сети и посмотрим что все работает.
Код для подключения библиотеки и пример использования команд:
package
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import SocialAPI.connection.*;
    public class main extends Sprite
    {
        private var connectionAPI:ConnectionApi;

        public function main()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            trace ('this is sotialAPI');
            // get flashVars                  
            // получаем flashVars                                                                                        
            var parametrs:Object = this.loaderInfo.parameters;
         
            // add specific default settings for mm;                                                                                        
            // добавляем специфичесие настройки социальных сетей;
            parametrs.mm={DOMFlashId:'flash-app',        
                          privateKey:'a284a33469d7e982d344f4db15baaf7c'};
            //add specific default settings for vk;                                                                                        
            parametrs.vk = {setting:31};


            //rear of the name of social networks;                                                                                         
            // получаем имя социальной сети;
            ConnectionApi.SET_SOCIAL_NAME(parametrs);


            //create an instance of the social network;
            // создаем экземпляр объекта для работы с социальной сетью                                                                                   
            connectionAPI = new ConnectionApi.SOCIAL_CLASS_API(parametrs);
            //Adds a listener to successfully connect to a set of social;
            // добавляем слушатель успешной авторизации                                                                 
            connectionAPI.addEventListener(ConnectionApi.CONNECT, handlerConnect);
            //call the connect;            
            // вызываем метод авторизации                                                                                             
            connectionAPI.connect();
        }
        private function handlerConnect(event:Event):void
        {
            // отписываемся от прослушивания события
            connectionAPI.removeEventListener(ConnectionApi.CONNECT, handlerConnect);
            // добавляем слушатель успешного получения информации о пользователе
            connectionAPI.addEventListener(ConnectionApi.USER_COMPLITE, handlerUser);
            // запрашиаем информацию о пользователе
            connectionAPI.askUserInfo();
         }
        private function handlerUser(event:Event):void
        {
            connectionAPI.removeEventListener(ConnectionApi.USER_COMPLITE, handlerUser);
            connectionAPI.addEventListener(ConnectionApi.FRIENDS_COMPLITE, handleFriends);
            //запрашиваем информацию о друзьях;
            connectionAPI.askFriendsList();
        }
        private function handleFriends(event:Event):void
        {
            connectionAPI.removeEventListener(ConnectionApi.FRIENDS_COMPLITE, handleFriends);
            //выводим информацию о друзьях
            for(var g:* in connectionAPI.friends) connectionAPI.friends[g].out();
            // показываем окно приглашения друзей;
            connectionAPI.showInviteBox();
        }
    }
}

В следующей версии я постараюсь подключить facebook.com и расширить функционал имеющихся социальный сетей.
Жду предложений по развитию функционала.