Автор работы: Пользователь скрыл имя, 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
Содержание:
Введение…………………………………………………………
4.1. Flash-приложения ……………………………………………………………… 15
4.2. IFrame-приложения …………………………………………………………… 21
Сервис Вконтакте предоставляет механизм взаимодействия с внешними клиентскими приложениями. Любой пользователь может свободно создавать приложения, которые могут совершать требуемые действия с данными пользователей и групп. Для этого разработан Application programming interface (API), который достаточно прост и предоставляет все необходимые инструменты для операций с данными. В данной курсовой работе будет проведен разбор этого механизма.
API (application programming interface) - это интерфейс прикладного программирования. Если говорить более простым языком, то это набор различных функций, констант, классов, форматов запросов, которые можно использовать в других программах.
Можно считать, что API - это некий объект, реализацию которого мы не знаем, однако, можем его использовать. Например, компьютер - объект, реализацию которого знают очень мало людей, однако, использовать его могут почти все, совершая какие-то действия: просмотр видео, сёрфинг по Интернету, печать текста и прочее. Как это всё работает - мало, кто знает, а вот делать это могут чуть ли не все.
Примером API является Windows API, OpenGL API, Direct3D API и так далее.
API определяет функциональность,
которую предоставляет
Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.
Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.
По такому принципу построены протоколы передачи данных по Интернет. Стандартный стек протоколов (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню.
Важно заметить, что понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором — о взаимодействии приложений.
API библиотеки функций и классов включает в себя описание сигнатур и семантики функций.
Сигнатура функции — часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. В различных языках программирования существуют разные представления о сигнатуре функции, что также тесно связано с возможностями перегрузки функций в этих языках.
Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.
Например, в языке программирования C++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет участвовать и имя класса.
В языке программирования Java сигнатуру метода составляет его имя и последовательность типов параметров; тип значения в сигнатуре не участвует.
Семантика функции — это описание того, что данная функция делает. Семантика функции включает в себя описание того, что является результатом вычисления функции, как и от чего этот результат зависит. Обычно результат выполнения зависит только от значений аргументов функции, но в некоторых модулях есть понятие состояния. Тогда результат функции может зависеть от этого состояния, и, кроме того, результатом может стать изменение состояния. Логика этих зависимостей и изменений относится к семантике функции. Полным описанием семантики функций является исполняемый код функции или математическое определение функции.
Open API - система для разработчиков сторонних сайтов, которая предоставляет возможность легко авторизовывать пользователей ВКонтакте на сайте пользователя. Кроме этого, с согласия пользователей, можно получить доступ к их друзьям, фотографиям, аудиозаписям, видеороликам и прочей информации ВКонтакте для более глубокой интеграции с проектом.
В рамках подключения к Open API создается специальное приложение, которое позволяет использовать на разрабатываемом сайте все текущие методы ВКонтакте API. Помимо этого, Open API предоставляет возможность упростить процесс регистрации новых пользователей на сайте, если у них уже есть учетная запись ВКонтакте.
Подключение Open API
Для подключения сайта к платформе Open API, необходимо выполнить следующие действия:
Инициализация Open API
Инициализация Open API может происходить двумя способами: обычным (синхронным) и асинхронным.
Обычная инициализация
Для использования обычной инициалиазации необходимо добавить следующий блок кода внутри тега:
<script src="http://vkontakte.ru/js/
<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("
el.type = "text/javascript";
el.src = "http://vkontakte.ru/js/api/
el.async = true;
document.getElementById("vk_
}, 0);
</script>
При использовании асинхронной
Пример авторизации через Open API
<script src="http://vkontakte.ru/js/
<div id="login_button" onclick="VK.Auth.login(
<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(
VK.UI.button('login_button');
</script>
Объект VK имеет следующие поля:
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-вызове. |
logout |
callback: Function |
В случае успеха завершает
сессию пользователя внутри платформы
Open API и выполняет выход пользователя из
ВКонтакте. |
revokeGrants |
callback: Function |
В случае успеха лишает приложение
прав на доступ к данным пользователя. |
getLoginStatus |
callback: Function |
Узнает текущий статус, а также получает сессионные данные, если пользователь авторизирован на ВКонтакте и установил приложение к себе на страницу. Метод получает эти данные непосредственно с серверов ВКонтакте и возвращает ответ в вызове указанной callback-функции. |
getSession |
- |
Возвращает сессионные данные пользователя. Данный метод желательно использовать для получения сессионных данных пользователя, когда Вы точно знаете, что пользователь авторизован на ВКонтакте и в приложении, чтобы избежать задержек при асинхронном вызове VK.Auth.getLoginStatus. |