Использование API для сайтов

Мы предлагаем несколько возможностей для интеграции с внешними сайтами: плагины и глубокую интеграцию с использованием API. Плагины очень быстро и легко вставляются и начинают давать эффект, глубокая интеграция требует программирования, но имеет потенциал гораздо большего воздействия на ваш сайт и синергии с социальным вебом.

Подробности о плагинах читайте в гиде по социальным плагинам.

API предоставляет возможность интеграции с Моим Миром без продолжительной разработки. Мы реализовали на стороне Моего Мира функционал, который может пригодиться для вашего сайта: авторизацию, информацию о пользователе, отправка событий в “Что Нового” и т. п. Мы постарались сделать так, чтобы вы с минимальными усилиями смогли самостоятельно подключить эти возможности к вашему сайту.

Какие возможности предоставляются сейчас

Сейчас API для сайтов предоставляет следующие возможности всем подключившимся сайтам:

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

Как это работает

Технически, API для сайтов представляет механизм для получения необходимых данных (сессии) для осуществления вызовов API приложений моего мира. То есть сначала надо получить сессию (это делается только через JavaScript библиотеку), а потом можно обращаться к API приложений любыми способами, как это делают приложения (используя JS, Perl, PHP или что-то еще).

Алгоритм подключения

Регистрация сайта

Перед началом интеграции необходимо зарегистрировать сайт в моем мире. Это делается с помощью мастера регистрации сайта.

Закачка receiver.html

Для корректной работы API сайтов необходимо разместить файл receiver.html на вашем домене.

Скачать receiver.html

JavaScript для логина пользователя

Прежде, чем использовать все остальные функции, пользователь должен быть залогинен. Это можно сделать только через JavaScript библиотеку, предоставляемую Mail.Ru. После логина вы можете продолжать использовать эту библиотеку для вызова методов API, осуществлять вызовы с вашего сервера или комбинировать подходы.

Факт подключения — это предоставление пользователем разрешения на доступ к его личной информации. Он требуется только один раз. После первого подтверждения коннект будет происходить автоматически если пользователь залогинен на Mail.Ru.

Используйте код <a class='mrc__connectButton'></a> для автоматического создания кнопки подключения к сайту.

Пример инициализации библиотеки и логина пользователя:

  1. <html>
  2.  <head>
  3.   // этот небольшой скрипт создает минимальное окружение для библиотеки,
  4.   // но не загружает ее саму
  5.   <script type="text/javascript" src="http://cdn.connect.mail.ru/js/loader.js">
  6.   </script>
  7.  </head>
  8.  <body>
  9.   <script type="text/javascript">
  10.    //<![CDATA[
  11.     // этот вызов обязателен, он осуществляет непосредственную загрузку
  12.     // кода библиотеки; рекомендуем всю работу с API вести внутри callback'а
  13.     mailru.loader.require('api', function() {
  14.      // инициализируем внутренние переменные
  15.      // не забудьте поменять на ваши значения app_id и private_key
  16.      mailru.connect.init(__app_id__, __private_key__);
  17.      // регистрируем обработчики событий,
  18.      // которые будут вызываться при логине и логауте
  19.      mailru.events.listen(mailru.connect.events.login, function(session){
  20.       window.location.reload();
  21.      });
  22.      mailru.events.listen(mailru.connect.events.logout, function(){
  23.       window.location.reload();
  24.      });
  25.      // проверка статуса логина, в result callback'a приходит
  26.      // вся информация о сессии (см. следующий раздел)
  27.      mailru.connect.getLoginStatus(function(result) {
  28.       if (result.is_app_user != 1) {
  29.        // пользователь не залогинен, надо показать ему кнопку логина
  30.  
  31.        // вешаем кнопку логина (пример для jquery)
  32.        $('<a class="mrc__connectButton">вход@mail.ru</a>').appendTo('body');
  33.        // эта функция превращает только что вставленный элемент в
  34.        // стандартную кнопку Mail.Ru
  35.        mailru.connect.initButton();
  36.       } else {
  37.        // все ок, можно работать
  38.  
  39.        // получаем полную информацию о текущем пользователе
  40.        mailru.common.users.getInfo(function(result){console.log(result[0].uid)});
  41.       }
  42.      });
  43.     });
  44.    //]]>
  45.   </script>
  46.  </body>
  47. </html>

Использование API

После того, как пользователь залогинился, на вашем домене проставляется кука mrc, в которой есть все данные для использования API с вашего сервера. Пример разбора куки на PHP:

  1.   parse_str(urldecode($_COOKIE['mrc']));

Пример результата:

Array(
    [app_id] => 459441
    [exp] => 1270806364
    [ext_perm] =>
    [is_app_user] => 1
    [oid] => 1324730981306483817
    [session_key] => 0b693783ca5ad2023d9aac4fa535a9a4
    [ss] => d41d8cd98f00b204e9800998ecf8427e
    [state] =>
    [vid] => 1324730981306483817
    [sig] => 5069d4cc484d229b5a56ce39ed92037a
)

Содержимое mrc идентично содержанию объекта mailru.session.

После логина вы можете использовать все функции JS API и REST API.

Пример реализации

Алгоритм подключения

  1. зарегистрируйте сайт
  2. закачайте файл receiver.html на ваш сайт
  3. интегрируйте авторизацию
  4. используйте JS и REST API

Документация