Автор работы: Пользователь скрыл имя, 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
Использование Flash-контейнера
Для более тесной интеграции
приложения c пользовательским интерфейсом
ВКонтакте, предусмотрена возможность
использования Flash-контейнера. После его
включения SWF-приложение показывается
пользователям не напрямую, а через SWF-обертку,
которая в свою очередь выполняет функцию
предзагрузчика и предоставляет методы для взаимодействия с
Если приложение написано на Actionscript 2.0, то Вы можете использовать альтернативный доступ к JS API через Flash-посредник.
Возможности Flash-контейнера
На текущий момент Flash-контейнер
предоставляет следующие
Как использовать Flash-контейнер?
Включить Flash-контейнер можно
на странице редактирования приложения.
Но прежде чем включать эту возможность,
необходимо подготовить приложение
для корректной работы с
Для получения ссылки на объект, содержащий
в себе необходимые методы и данные, необходимо
выполнить следующую операцию:
var wrapper: Object = Object(parent.parent);
Все дальнейшие действия будут выполняться
с полученным объектом wrapper.
Необходимо учитывать, что объект parent.parent
становится доступен только после полной
загрузки SWF-файла. Поэтому обращаться
к этому объекту можно не раньше, чем сработает
событие Event.ADDED_TO_STAGE.
Пример кода инициализации приложения
this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage
);
...
function onAddedToStage(e: Event): void {
var wrapper: Object = Object(parent.parent);
// Init application
}
Описание методов Flash-контейнера
Объект wrapper имеет следующие поля:
4.2. IFrame-приложения.
Пользователь может создать любое интегрированное приложение, загружаемое с Вашего сервера с помощью встроенного на страницу ВКонтакте элемента IFrame. Такие приложения могут отображать информацию с помощью любых технологий, поддерживаемых браузером пользователя: HTML, Javasсript, AJAX, Flash и др.
Аналогично переменным flashVars, передаваемым во Flash-приложение, в IFrame-приложение эти переменные передаются посредством GET-параметров запроса.
Использование Javascript API в IFrame-приложении
Для более тесной интеграции IFrame-приложения c пользовательским интерфейсом ВКонтакте, предусмотрена возможность использования Javasсript API, который позволяет выполнять следующие функции:
Инициализация Javascript API
1. Необходимо добавить ссылку в код Вашей страницы:
<script src="http://vk.com/js/api/xd_
2. После загрузки страницы для
инициализации приложения
<script type="text/javascript">
VK.init(function() {
// API initialization succeeded
// Your code here
});
</script>
Методы Javascript API
Все нижеперечисленные методы доступны в контексте глобального объекта VK, создаваемого в результате подключения файла xd_connection.js к странице приложения.
Название метода |
Параметры |
Описание |
init |
[Function success] |
Инициализирует соединение с родительским окном для запуска внешних вызовов. При успешной инициализации соединения вызывается функция success. |
callMethod |
String name, Object param1, Object param2, ... |
Осуществляет внешний вызов метода javascript API |
addCallback |
String name, Function callback |
Добавляет функцию callback в качестве обработчика события name. |
removeCallback |
String name, Function callback |
Удаляет обработчик события name. |
api |
String method, Object params, Function callback |
Выполняет запрос к ВКонтакте API и передаёт полученные данные в функцию callback. |
Обработка событий
В результате совершения пользователем
каких-либо действий на странице с приложением,
родительское окно создает события,
которые можно отслеживать с
помощью функции VK.
Название события |
Параметры |
Описание |
onApplicationAdded |
– |
Событие происходит, когда пользователь добавляет приложение к себе на страницу. |
onSettingsChanged |
int settings |
Событие происходит, когда пользователь изменяет настройки приложений. Параметр settings передаваемого объекта в функцию обратного вызова содержит в себе битовую маску выставленных значений настроек. Подробнее о значении параметра настроек в описании метода getUserSettings. |
onBalanceChanged |
int balance |
Событие происходит, когда пользователь положил или снял голоса с баланса приложения. Параметр balance содержит текущий баланс пользователя в сотых долях голоса. Этот параметр можно использовать только для вывода пользователю. Достоверность баланса всегда нужно проверять с помощью метода secure.getBalance. |
onOrderCancel |
– |
Событие происходит, когда пользователь отменяет покупку. |
onOrderSuccess |
int orderId |
Событие происходит, когда покупка закончилась успешно. |
onOrderFail |
int errorCode |
Событие происходит, когда покупка закончилась неуспешно. |
onProfilePhotoSave |
– |
Событие происходит, когда пользователь подтвердил сохранение фотографии в окне, вызванном с помощью функции showProfilePhotoBox. |
onWallPostSave |
– |
Событие происходит, когда
пользователь подтвердил публикацию записи
на стене в окне, вызванном с
помощью функции |
onWallPostCancel |
– |
Событие происходит, когда пользователь отменяет публикацию записи на стену. |
onWindowResized |
int width, int height |
Событие происходит, когда размер окна приложения был изменен. Параметры width и height содержат новые размеры приложения в пикселах. |
onLocationChanged |
String location |
Событие происходит, когда изменяется значение хеша после символа # в адресной строке браузера. Например, это происходит в результате использования кнопок "назад" и "вперед" в браузере. Данное событие происходит всегда при запуске приложения. |
onWindowBlur |
– |
Событие происходит, когда окно с приложением теряет фокус. Например, когда пользователь открывает окно с настройками приложения. |
onWindowFocus |
– |
Событие происходит, когда окно с приложением получает фокус. Например, когда пользователь закрывает окно с настройками приложения. |
onScrollTop |
int scrollTop, int windowHeight |
Событие происходит, когда вызывается метод scrollTop. Параметр windowHeight - высота окна в браузере. |
onScroll |
int scrollTop, int windowHeight |
Событие происходит, при
прокрутке пользователем |
onToggleFlash |
bool show |
Событие происходит, когда открывается всплывающее окно, и flash компоненты в приложении у которых нет возможности установить wmode="opaque" необходимо спрятать, параметр show - определяет, какое действие необходимо произвести с компонентами, спрятать или показать. |
Пример выполнения запроса к API:
VK.api("getProfiles", {uids:"1,2,3,4"},
function(data) {
// Действия с полученными данными
});
Для доступа к API ВКонтакте из любого Standalone-приложения предусмотрен механизм клиентской авторизации на базе протокола OAuth 2.0. В качестве клиента может выступать любое Desktop/мобильное приложение, имеющее доступ к управлению Web-браузером. Standalone/Mobile-приложениях и сайтах, а также серверных частях любых типов приложений перед вызовом большинства методов API необходимо проводить авторизацию пользователя (или приложения). Существует два вида авторизации:
После авторизации определяется уровень прав приложения, в зависимости от которых приложение может совершать только строго определенные действия, а также выдаётся ключ доступа access_token, c помощью которого можно выполнять любые запросы к API ВКонтакте от имени пользователя или от имени приложения.
Для написания своего приложения пользователю вначале необходимо зарегистрировать его. Для этого необходимо зайти в раздел «Разработчикам» на сайте Вконтакте и выполнить регистрацию нового приложения. В этом случае приложению будет присвоен id, который впоследствии будет использоваться при авторизации.
В качестве языка программирования был выбран C# в силу его гибкости и удобства при написании Web-приложений.
Для работы с API Вконтакте приложению необходима авторизация. Сделать это можно посредством компонента WebBrowser. Подключив данный компонент, ему можно передать ссылку следующего вида:
https://oauth.vk.com/
В данной ссылке на сервер авторизации Вконтакте передаются следующие параметры:
Окно авторизации в этом случае будет выглядеть так, как показано на рисунке 1.
Рисунок 1. Окно авторизации приложения
В случае успешной авторизации необходимо подтвердить разрешения, выданные приложению, после чего оно получит доступ к данным. Используя GET-запросы к API, приложение может осуществлять широкий спектр действий. В данном примере приложение отправляет пост на стену пользователя, содержащий текст «test». GET-запрос в этом случае выглядит следующим образом:
https://api.vk.com/method/
Здесь параметр method определяет метод API, которым будет пользоваться приложение. Следует заметить, что расширение .xml указывает в каком формате будет возвращен ответ – в xml или json-формате (в случае отсутствия расширения .xml). После указания метода необходимо указать параметры, которые передаются серверу. В данном случае достаточно передать один параметр – сообщение, которое будет размещено на стене пользователя. Для того, чтобы сообщение было размещено необходимо подтвердить, что оно было отправлено от авторизованного приложения. Для этой цели в запросе указывается параметр access_token, который приложение получает сразу после успешной авторизации. Поэтому данный access_token необходимо сохранять на все время сеансовой сессии.
API Вконтакте предоставляет широкие возможности для работы с данными, а также простые и удобные механизмы для взаимодействия со сторонними программами. Это позволяет создавать различные приложения, использующие этот API, практически на всех распространенных и популярных языках программирования (Java, C++, C#, PHP и т.д.) на всех платформах, включая мобильные (Windows 7/8, Android, IOS), что, возможно, и является одной из причин роста популярности социальной сети Вконтакте.
Список использованной литературы:
URL: http://vk.com/development/
URL: http://habrahabr.ru/hub/
URL: http://wikipedia.org/