Обзор API социальной сети ВКонтакте

Автор работы: Пользователь скрыл имя, 18 Октября 2013 в 10:48, курсовая работа

Краткое описание

Сервис Вконтакте предоставляет механизм взаимодействия с внешними клиентскими приложениями. Любой пользователь может свободно создавать приложения, которые могут совершать требуемые действия с данными пользователей и групп. Для этого разработан Application programming interface (API), который достаточно прост и предоставляет все необходимые инструменты для операций с данными. В данной курсовой работе будет проведен разбор этого механизма.

Содержание

Введение…………………………………………………………………………………… 3
API. Теоретические аспекты………………………………………………… 4
Специфика реализации Open API Вконтакте…………………………… 5
Описание методов Open API ………………………………………………… 8
Приложения Вконтакте……………………………………………………… 15
4.1. Flash-приложения ……………………………………………………………… 15
4.2. IFrame-приложения …………………………………………………………… 21
5. Standalone-desktop приложения для API Вконтакте ………………………… 25
Заключение ……………………………………………………………………………… 27
Список использованной литературы ……………………………………………….28

Прикрепленные файлы: 1 файл

main.docx

— 112.07 Кб (Скачать документ)

 
Ниже представлены несколько примеров использования описанных методов:

VK.Auth.login(function(response) {

  if (response.session) {

    /* Пользователь  успешно авторизовался */

    if (response.settings) {

      /* Выбранные  настройки доступа пользователя, если они были запрошены */

    }

  } else {

    /* Пользователь  нажал кнопку Отмена в окне  авторизации */

  }

});

VK.Auth.getLoginStatus(function(response) {

  if (response.session) {

    /* Авторизованный  в Open API пользователь */

  } else {

    /* Неавторизованный  в Open API пользователь */

  }

});

 

Авторизации на удаленной  стороне

Для того, чтобы Вы могли проверить, что пользователь действительно авторизовался через платформу Open API, в сессионных данных передается параметр sig. Он служит цифровой подписью данных. После авторизации, сессионные данные записываются в cookie с именем vk_app_<APP_ID>, где <APP_ID> - это идентификатор Вашего приложения. Данные записаны в виде пар parameter_name=parameter_value, соединенных разделительным символом &:

expire=1271238742&mid=100172&secret=97c1e8933e&sid=549b550f608e4a4d247734941debb5e68df50a66c58dc6ee2a4f60a2&sig=372df9795fe8dd29684a2f996872457c

 
Параметр sig равен md5 от конкатенации следующих строк:

  • данных сессии expire, mid, secret, sid в виде пар parameter_name=parameter_value, расположенных в порядке возрастания имени параметра (по алфавиту).
  • защищенного ключа Вашего приложения

В данном случае значение sig будет вычислено как md5-хеш от следующей строки:

expire=1271238742mid=100172secret=97c1e8933esid=549b550f608e4a4d247734941debb5e68df50a66c58dc6ee2a  
4f 60a26FF1PUlZfEyutJxctvtd

 
Ниже представлен пример кода на языке PHP, который может быть использован  для авторизации пользователя Open API на удаленной стороне:

function authOpenAPIMember() {

  $session = array();

  $member = FALSE;

  $valid_keys = array('expire', 'mid', 'secret', 'sid', 'sig');

  $app_cookie = $_COOKIE['vk_app_'.APP_ID];

  if ($app_cookie) {

    $session_data = explode ('&', $app_cookie, 10);

    foreach ($session_data as $pair) {

      list($key, $value) = explode('=', $pair, 2);

      if (empty($key) || empty($value) || !in_array($key, $valid_keys)) {

        continue;

      }

      $session[$key] = $value;

    }

    foreach ($valid_keys as $key) {

      if (!isset($session[$key])) return $member;

    }

    ksort($session);

 

    $sign = '';

    foreach ($session as $key => $value) {

      if ($key != 'sig') {

        $sign .= ($key.'='.$value);

      }

    }

    $sign .= APP_SHARED_SECRET;

    $sign = md5($sign);

    if ($session['sig'] == $sign && $session['expire'] > time()) {

      $member = array(

        'id' => intval($session['mid']),

        'secret' => $session['secret'],

        'sid' => $session['sid']

      );

    }

  }

  return $member;

}

 

$member = authOpenAPIMember();

 

if($member !== FALSE) {

  /* Пользователь авторизирован в Open API */

} else {

  /* Пользователь не  авторизирован в Open API */


В данном примере константы имеют следующие значения:

  • APP_ID - ID Open API приложения
  • APP_SHARED_SECRET - защищенный ключ Open API приложения

 

 

VK.Api

Для взаимодействия с Flash API ВКонтакте используются методы объекта VK.Api. В таблице ниже представлен список доступных методов.

Название метода

Параметры

Описание

call

method: String 
params: Object 
callback: Function

Вызывает метод, переданный в параметре method, c аргументами, переданными в объекте params. Ответ API-сервера ВКонтакте возвращается в качестве аргумента в вызове функции указанной в параметре callback.


 
 
Ниже представлен пример вызова метода getVariable, через Open API:

VK.Api.call('getVariable', {key: 1281}, function(r) {

  if(r.response) {

    alert('Привет, ' + r.response);

  }

});

 

 

 

VK.Observer

Для реакции на события, возникающие  в процессе работы платформы Open API, Вы можете использовать методы наблюдения за событиями, предоставлямые объектом VK.Observer.  
 
Ниже представлены типы событий, на получение которых Вы можете подписаться.

Событие

Описание

auth.login

Возникает при авторизации  пользователя с помощью метода VK.Auth.login

auth.logout

Возникает при выходе пользователя с помощью метода VK.Auth.logout

auth.statusChange

Возникает при изменении  статуса пользователя

auth.sessionChange

Возникает при изменении  любых данных, связанных с авторизацией пользователя


 
 
Для работы с данными типами событий  используются методы описанные ниже:

Название метода

Параметры

Описание

  subscribe

event: String 
handler: Function

Добавляет функцию, переданную в параметре handler, в список получателей события, которое указано в параметре event.

  unsubscribe

event: String 
handler: Function

Удаляет функцию, переданную в параметре handler, из списка получателей события, которое указано в параметре event. Если параметр handler не задан, то удаляются все обработчики события, указанного в параметре event.


 

 

 

 

 

 

 

 

VK.UI

Объект VK.UI содержит в себе различные методы связанные с интерфейсом. Ниже представлен список доступных на данный момент методов.

Название метода

Параметры

Описание

button

box_id: String

Создает стилизованную кнопку “Войти ВКонтакте” внутри контейнера c id заданным через параметр box_id.


 

 

  1. Приложения ВКонтакте.

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

Обновленная версия API дает разработчикам сотни новых возможностей и позволяет создавать интересные, интерактивные и популярные приложения.

Существует два типа приложений:  
1) Flash приложения.  
В качестве оболочки для обмена данными используется объект Flash. Вы можете загрузить любое приложение в формате .SWF размером не более 807x730 точек. Если используется Flash-контейнер, то размер приложения ограничен 807x4050 точками. Также можно отключить поля и элементы управления приложением, тогда размер приложения может быть увеличен до 827x4050 точек.  
2) IFrame приложения. 
Внутри страницы приложения открывается IFrame, содержащий страницу, расположенную на стороннем сервере, в таком случае приложение может использовать любые технологии, поддерживаемые браузером, и обмениваться данными с ВКонтакте используя JavaScript. Вы можете менять размер приложения как в Настройках, так и динамически через JS API.

 

    1. Flash-приложения. 
      Для более тесной интеграции приложения c пользовательским интерфейсом ВКонтакте предусмотрена возможность использования Flash-посредника на основе LocalConnection.  
      Для взаимодействия с ВКонтакте используйте следующий компонент: http://vk.com/source/APIConnection.zip (Инструкция по сборке)  
       
      Описание Flash-библиотеки стандартных GUI-компонентов

Возможности APIConnection

На текущий момент APIConnection предоставляет следующие возможности:

  • Открытие окон установки приложения, настроек, приглашения друзей и ввода голосов для оплаты услуг.
  • Получение событий после успешной установки приложения пользователем, изменения настроек и баланса пользователя внутри приложения.
  • Осуществление запросов к ВКонтакте API.

 

Как использовать APIConnection?

APIConnection может быть использован любым приложением с отключенным Flash-контейнером. Для этого на странице редактирования приложения необходимо выбрать пункт "Без использования контейнера" в соответствующей графе.  
 
Для начала работы с APIConnection подключите к Вашему проекту класс vk.APIConnection, доступный в архиве APIConnection.zip, и создайте экземпляр этого класса. Единственным параметром его конструктора является объект flashVars.

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

var flashVars: Object = stage.loaderInfo.parameters as Object;  
var VK: APIConnection = new APIConnection(flashVars);

 
 
Для тестирования приложения и осуществления  запросов к API на локальной машине Вы можете дополнить flashVars временными значениями:

if (!flashVars.api_id) {  
  // -- For local testing enter you test-code here:  
  flashVars['api_id'] = 1888171;  
  flashVars['viewer_id'] = 66748;  
  flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa";  
  flashVars['secret'] = "6113n3e4g3";  
  // -- //  
}

 
Все дальнейшие действия будут выполняться  с объектом VK.

Вызовы JS API

Для осуществления внешних  вызовов необходимо использовать функцию  объекта VK - VK.callMethod(methodName: String, param1, param2 ...). В таблице ниже приведен список доступных функций.  
 
Список методов Javascript API »

Обращение к ВКонтакте API

Для обращения к ВКонтакте API необходимо использовать функцию объекта VK - VK.api(methodName: String, params: Object, [onComplete: Function, OnError: Function]).

  • При удачном завершении запроса будет вызвана функция onComplete с объектом, содержащим результат выполнения запроса.
  • При неудачном завершении запроса будет вызвана функция OnError с объектом, содержащим данные об ошибке.

Также Вы можете обращаться к API стандартными средствами, составляя  запрос по следующей схеме.

Обработка событий 

По мере совершения пользователем  действий на странице с приложением, объект VK создает события, которые можно отслеживать и обрабатывать функцией addEventListener. В таблице ниже представлен список создаваемых событий.  
 
Каждое событие имеет поле params, содержащее в себе передаваемые параметры.

Название события

Параметры

Описание

onApplicationAdded

Событие происходит, когда  пользователь добавляет приложение к себе на страницу.

onSettingsChanged

settings: Number

Событие происходит, когда  пользователь изменяет настройки приложения. Параметр settings передаваемого объекта в функцию обратного вызова содержит в себе битовую маску выставленных значений настроек. Подробнее о настройках приложения в описании метода getUserSettings.

onBalanceChanged

balance: Number

Событие происходит, когда  пользователь пополняет или снимает  голоса с баланса приложения. Параметр balance содержит текущий баланс пользователя в сотых долях голоса. Этот параметр можно использовать только для вывода пользователю. Достоверность баланса всегда нужно проверять с помощью метода secure.getBalance.

onOrderCancel

Событие происходит, когда  пользователь отменяет покупку.

onOrderSuccess

orderId: Int

Событие происходит, когда  покупка закончилась успешно.

onOrderFail

Событие происходит, когда  покупка закончилась неуспешно.

onWindowBlur

Событие происходит, когда  окно с приложением теряет фокус. Например, когда пользователь открывает  окно с настройками приложения.

onWindowFocus

Событие происходит, когда  окно с приложением получает фокус. Например, когда пользователь закрывает  окно с настройками.


 

Пример кода обработки события:

apiConnection.addEventListener('onSettingsChanged', onSettingsChanged);  
function onSettingsChanged(e: CustomEvent): void {  
var settings: uint = e.params[0];  
// do something  
}

Информация о работе Обзор API социальной сети ВКонтакте