Сейчас очень часто flash упоминается как средство разработки игр для социальных сетей. Но социальных сетей очень много и у них совершенно разный api для работы с инструментами самой социальной сети. Не так давно я задумался над тем, что было бы замечательно сделать библиотеку которая бы могла помочь с этом вопросом. И так как у меня сейчас есть свободное время я решил этим заняться.
И я хочу продемонстрировать первую версию для работы с социальными сетями для actionscript 3.0, под названием socialAPI.
Для начала я решил взять две социальные сети со свободным доступом к песочнице: мой мир и вконтакте. Получилось просто и легко.
Кратко, о том что теперь не прийдется делать разработчику, а именно что за него сможет сделать данная библиотека:
1). Определение социальной сети по flashVars.
2). Авторизация в социальной сети.
- для вконтакте проверка настроек доступа.
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
// получаем flashVars
var parametrs:Object = this.loaderInfo.parameters;
// add specific default settings for mm;
// добавляем специфичесие настройки социальных сетей;
parametrs.mm={DOMFlashId:'flash-app',
privateKey:'a284a33469d7e982d344f4db15baaf7c'};
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);
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.addEventListener(ConnectionApi.USER_COMPLITE, handlerUser);
// запрашиаем информацию о пользователе
connectionAPI.askUserInfo();
connectionAPI.askUserInfo();
}
private function handlerUser(event:Event):void
{
connectionAPI.removeEventListener(ConnectionApi.USER_COMPLITE, handlerUser);
connectionAPI.addEventListener(ConnectionApi.FRIENDS_COMPLITE, handleFriends);
//запрашиваем информацию о друзьях;
connectionAPI.askFriendsList();
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 и расширить функционал имеющихся социальный сетей.
Жду предложений по развитию функционала.
есть пару замечаний по коду. сюда писать или в личку? =)
ОтветитьУдалитьВообще идея отличная. я бы использовал библиотечку=)
эт я писал=)
ОтветитьУдалитьДа можно и сюда писать, проект то еще только на начальной стадии.
ОтветитьУдалить- имена переменных лучше вынести в константы и юзать их отовсюду не боясь перепутать их где либо.
ОтветитьУдалить- обычно пакеты называют множественным числом models, connections
- имя connection лучше переделать с вида ConnectionSocialName на SocialNameConnection. опять же так принято именовать
- сами пакеты со вспомогательными функциями лучше вынести в одну папку к примеру nets где будет лежать vk, mm, fb и т.д.
- кстати сами имена лучше давать полные так как в будущем может появиться сеть с похожей на уже добавленную в библиотеке аббревиатурой
вроде все. сильно не бей=)