Обзор 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 Кб (Скачать документ)

Содержание:

 

Введение…………………………………………………………………………………… 3

  1. API. Теоретические аспекты………………………………………………… 4
  2. Специфика реализации Open API Вконтакте…………………………… 5
  3. Описание методов Open API ………………………………………………… 8
  4. Приложения Вконтакте……………………………………………………… 15

4.1. Flash-приложения ……………………………………………………………… 15

4.2. IFrame-приложения …………………………………………………………… 21

5. Standalone-desktop приложения для API Вконтакте ………………………… 25

Заключение ……………………………………………………………………………… 27

Список использованной литературы ……………………………………………….28

 

 

Введение

 

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

 

  1. API. Теоретические аспекты.

API (application programming interface) - это интерфейс прикладного программирования. Если говорить более простым языком, то это набор различных функций, констант, классов, форматов запросов, которые можно использовать в других программах.

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

Примером  API является Windows API, OpenGL API, Direct3D API и так далее.

API определяет функциональность, которую предоставляет программа  (модуль, библиотека), при этом API позволяет  абстрагироваться от того, как  именно эта функциональность  реализована.

Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.

Программные компоненты взаимодействуют  друг с другом посредством API. При  этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

По такому принципу построены  протоколы передачи данных по Интернет. Стандартный стек протоколов (сетевая  модель OSI) содержит 7 уровней (от физического  уровня передачи бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью  предыдущего уровня передачи данных и, в свою очередь, предоставляет  нужную функциональность следующему уровню.

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

API библиотеки функций  и классов включает в себя  описание сигнатур и семантики функций.

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

Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.

Например, в языке программирования C++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет участвовать  и имя класса.

В языке программирования Java сигнатуру метода составляет его имя и последовательность типов параметров; тип значения в сигнатуре не участвует.

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

 

  1. Специфика реализации Open API Вконтакте.

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

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

 

Подключение Open API

Для подключения сайта  к платформе Open API, необходимо выполнить следующие действия:

  • Необходимо создать новое или взять уже созданное приложение.
  • На странице редактирования настроек приложения заполнить необходимые поля Open API:
    • Open API URL – адрес сайта, к которому планируется подключить Open API (например http://durov.at/)
    • Базовый домен – базовый домен создаваемого сайта (например, durov.at)

 

Инициализация Open API

Инициализация Open API может происходить двумя способами: обычным (синхронным) и асинхронным.

Обычная инициализация 

Для использования обычной инициалиазации необходимо добавить следующий блок кода внутри тега:

<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script>

<script type="text/javascript">

  VK.init({

    apiId: ВАШ_API_ID

  });

</script>

 

Асинхронная инициализация 

В отличие от обычной, асинхронная  инициализация Open API, позволяет производить инициализацию платформы параллельно инциализации JavaScript-кода. Для использования асинхронной инициализации, необходимо добавить следующий HTML и JavaScript код сразу же после открытия тега:

<div id="vk_api_transport"></div>

<script type="text/javascript">

  window.vkAsyncInit = function() {

    VK.init({

      apiId: ВАШ_API_ID

    }); };

  setTimeout(function() {

    var el = document.createElement("script");

    el.type = "text/javascript";

    el.src = "http://vkontakte.ru/js/api/openapi.js";

    el.async = true;

    document.getElementById("vk_api_transport").appendChild(el);

  }, 0);

</script>

 
При использовании асинхронной инициализации  наличие контейнера vk_api_transport является обязательным условием успешной инициализации. При обычной инициализации, контейнер будет создан автоматически, в случае его отсутствия.

Пример авторизации через Open API

<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script>

<div id="login_button" onclick="VK.Auth.login(authInfo);"></div>

<script language="javascript">

VK.init({

  apiId: ВАШ_API_ID

});

function authInfo(response) {

  if (response.session) {

    alert('user: '+response.session.mid);

  } else {

    alert('not auth');

  }

}

VK.Auth.getLoginStatus(authInfo);

VK.UI.button('login_button');

</script>

 

 

 

 

  1. Описание методов Open API

Объект VK имеет следующие  поля:

  • VK.init - основной метод инициализации платформы Open API.
  • VK.Auth - содержит методы, связанные с авторизацией пользователей.
  • VK.Api - содержит методы, связанные с работой с ВКонтакте API.
  • VK.Observer - содержит методы для реакции на возникающие в ходе работы платформы события.
  • VK.UI - содержит методы, связанные с интерфейсом пользователя.

 

VK.init

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

Свойство

Обязательное

Описание

apiId

ID вашего приложения, который  Вы можете узнать на странице  редактирования Вашего приложения 

nameTransportPath

Путь к файлу xd_receiver.html, расположенному на Вашем сервере, относительно корня.

status

 

Автоматически обновить при  инициализации данные сессии и статуса  с помощью метода VK.Auth.getLoginStatus


 
 
После успешной инициализации Вы можете обращаться к методам Flash API, используя метод call объекта VK.Api.

 

 

 

 

 

 

 

VK.Auth

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

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

Параметры

Описание

login

callback: Function settings: Number

Открывает popup-окно для авторизации  пользователя с его учетной записью  ВКонтакте. Если пользователь уже авторизован на ВКонтакте, но не установил приложение, то запрашивает разрешение на доступ к личным данным. Если пользователь авторизирован на ВКонтакте и установил приложение к себе на страницу, то popup-окно сразу же закрывается и возвращаются сессионные данные пользователя в callback-вызове.  
 
Если задан параметр settings, то пользовательские настройки приложения сравниваются со значением переданным в settings и в случае необходимости запрашиваются те, которых не хватает. С текущим списком битовых маск настроек можно ознакомится на странице getUserSettings.  
 
Так как данная функция вызывает popup-окно, то для предовращения блокировки popup-окна, она должна вызываться в обработчике пользовательского события (например, нажатия на кнопку мыши по объекту).  
 
Если пользователь не был авторизован на ВКонтакте, то при успешном результате авторизации пользователь также сразу будет авторизован на ВКонтакте.  
 
Данный метод генерирует событие auth.login, на которое Вы можете подписаться, используя методы наблюдения за событиями, предоставляемые объектом VK.Observer.

logout

callback: Function

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

 revokeGrants

callback: Function

В случае успеха лишает приложение прав на доступ к данным пользователя.  
 
Данный метод генерирует событие auth.statusChange, на которое Вы можете подписаться, используя методы наблюдения за событиями, предоставляемые объектом VK.Observer.

getLoginStatus

callback: Function

Узнает текущий статус, а также получает сессионные данные, если пользователь авторизирован на ВКонтакте и установил приложение к себе на страницу. Метод получает эти данные непосредственно с серверов ВКонтакте и возвращает ответ в вызове указанной callback-функции.

 getSession

-

Возвращает сессионные данные пользователя. Данный метод желательно использовать для получения сессионных данных пользователя, когда Вы точно  знаете, что пользователь авторизован  на ВКонтакте и в приложении, чтобы избежать задержек при асинхронном вызове VK.Auth.getLoginStatus.

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