Руководство по использованию Flash API

Flash API предоставляет удобный способ работы с API из Flash-приложений. После инициализации, оно предоставляет доступ ко всем функциям JS API, поэтому Flash API и JS API равноценны по возможностям.

Инициализация JS API из Flash

Существуют 2 основных способа использования Flash-библиотеки для получения доступа к API Mail.ru:

iFrame-приложение

iFrame-приложение — также как и Flash-приложение, будет использоваться только внутри Платформы Мой Мир. Основным отличием от Flash-приложения является то, что в настройках приложения нужно будет указать путь до HTML-страницы, на которой вы самостоятельно подключаете flash-объект(swf-файл).

Обращаем ваше внимание, что минимальная ширина iframe составляет 950px. Приложение должно корректно работать при этой ширине.

Для использования Flash API в iFrame-приложении вам нужно:

  1. На домен, в котором располагается страничка вашего iFrame-приложения, загрузить файл receiver.html
  2. На вкладке «Настройки iFrame» управления приложением указать адрес загруженного файла receiver.html
  3. Подключить JS API, добавив следующий код в элемент <head> страницы приложения:
    <script type="text/javascript" src="https://connect.mail.ru/js/loader.js"></script>
    
  4. Cкачать классы библиотеки и импортировать их в код Flash приложения:
    import mailru.MailruCall
    import mailru.MailruCallEvent
    
  5. Загрузить и инициализировать JS API с помощью вызова функций из Flash:
    MailruCall.addEventListener(Event.COMPLETE, mailruReadyHandler);
    MailruCall.init(id_тэга_object, приватный_ключ_из_настроек_приложения);
    
    //mailruReadyHandler — ваша функция-обработчик готовности апи, например:
    private function mailruReadyHandler( event : Event ) : void {
      trace('Mail.ru API ready');
    }
    

Пример кода вставки и инициализации приложения

HTML

<object width="730" height="200" type="application/x-shockwave-flash" data="demo.swf" name="flash-game" id="flash-game">
  <param name="movie" value="demo.swf">
  <param name="AllowScriptAccess" value="always">
  <param name="allowNetworking" value="all">
  <param name="allowFullScreen" value="true">
</object>

ActionScript

MailruCall.addEventListener(Event.COMPLETE, mailruReadyHandler);
MailruCall.init('flash-game', privateKey);
private function mailruReadyHandler( event : Event ) : void {
  trace('Mail.ru API ready');
}

Внешний сайт

Внешний сайт — это сайт, находящщийся на стороннем по отношению к Платформе домене. К примеру, если ваш сайт сделан на Flash, Вы можете использовать доступ к API для упрощения процесса регистрации пользователя, запросив информацию о нем через API (имя, фамилия, аватар).

Для использования Flash API на внешнем сайте Вам нужно:

  1. Подключить сайт на странице api.mail.ru/sites/
  2. На домен вашего сайта, загрузить файл receiver.html
  3. На странице управления сайтом указать адрес загруженного файла receiver.html
  4. Подключить JS API, добавив следующий код в элемент <head> страницы приложения:
    <script type="text/javascript" src="https://connect.mail.ru/js/loader.js"></script>
    
  5. Cкачать классы библиотеки и импортировать их в код Flash приложения:
    import mailru.MailruCall
    import mailru.MailruCallEvent
    
  6. Загрузить и инициализировать JS API с помощью вызова функций из Flash:
    MailruCall.addEventListener(Event.COMPLETE, mailruReadyHandler);
    MailruCall.init(id_тэга_object, приватный_ключ_из_настроек_приложения, id_сайта, "connect");
    
    //mailruReadyHandler — ваша функция-обработчик готовности апи, например:
    private function mailruReadyHandler( event : Event ) : void {
      trace('Mail.ru API ready');
    }
    

Работа с JS API

После инициализации можно работать со всеми методами JS API, например, получить альбомы пользователя:

//получаем id пользователя и его первый альбом
userID = MailruCall.exec('mailru.session.vid');

MailruCall.exec('mailru.common.photos.getAlbums', getAlbumsCallback, userID);

//getAlbumsCallback — функция-обработчик, которая будет вызвана после получения списка альбомов
private function getAlbumsCallback(albums : Object) : void {
   if (albums[0]) { curAlbumId = albums[0].aid; }
   trace('ID первого альбома:  ' + curAlbumId);
}

Демонстрационные приложения

Мы подготовили приложения для демонстрации работы с JS API из Flash./p>