Создание приложений для ВКонтакте (Часть 1)

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

Подключение к api...
 
И так начнем. Для начала вам необходимо скачать классы для работы с апи СКАЧАТЬ. Здесь описано как его подключать к проекту. Конечно же, нам необходимо будет тестировать приложение локально, об этом и пойдет речь в этой статье.
В документации написано, что для локального запуска необходимо вручную прописать параметры, которые в нормальных условиях передаются внутрь флэшки при её запуске в ВКонтакте. Вот они:
var flashVars: Object = stage.loaderInfo.parameters as Object;

if (!flashVars.api_id)
{ 
  flashVars['api_id'] = 1888171; 
  flashVars['viewer_id'] = 66748; 
  flashVars['sid'] ="7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa"; 
  flashVars['secret'] = "6113n3e4g3"; 
}

var VK: APIConnection = new APIConnection(flashVars);
Если запускать приложение с сервера ВКонтакте, то flashVars.api_id не будет пустым, и в итоге будут использованы параметры переданные приложению. Теперь разберем параметры по порядку:
1) api_id - это идентификатор приложения, который виден в админ панели приложения.
2) viewer_id - это идентификатор пользователя, который запустил приложение.
3) sid - сессионный ключ. Как его получить написано ниже.
4) secret - ключ, который используется для подписи запроса.

Примечание:
secret по каким-то причинам, при локальном тестировании должен быть пустым, иначе приложение отправляет не правильно подписанные запросы.

Получение sid ключа


Чтобы его получить, необходимо перейти по такой ссылке:

http://api.vk.com/oauth/authorize?client_id=ID&redirect_uri=http://api.vk.com/blank.html&scope=ACCESS_RIGHTS&display=DISPLAY&response_type=token

Параметры:
1) ID - id вашего приложения.
2) DISPLAY - внешний вид окна авторизации. Может принимать следующие значения: page, popup, touch и wap.
2) ACCESS_RIGHTS - список прав доступа приложения к данным пользователя. Указываются через запятую(notify, friends, photos, audio, video, docs, notes, pages, wall, groups, messages, ads) либо в цифровом виде, суммируя необходимые права (1,2,4,8,16,32,64,...,262144).
Подробнее про права доступа, написано в официальной документации, здесь и здесь.

В ответ  на запрос, сервер вернет:
access_token=fe2ba33afe4e3deafe4e3dea32fe4e3c91ffe4efe4f1d688e66aeafc7417e99&expires_in=86400&user_id=1

Описание параметров:
1) access_token - и есть тот самый sid.
2) expires_in - время жизни token. После истечения необходимо обновить, если вы не хотите каждый раз обновлять его, то можно в ACCESS_RIGHTS добавить параметр offline, тогда token будет вечным.
3) user_id - id пользователя, для которого получаем token.

Запуск приложения


Теперь, когда у нас есть все параметры, можно запускать приложение. Но для начала, необходимо в админ панели приложения, выставить параметр Состояние в Приложение отключено.
Остался последний момент, который не описан в документации(или я просто не нашел).
Для тестирования приложения, необходимо в число передаваемых параметров в запросе к апи, включить параметр test_mode=1. Вот как можно это сделать, для скачанного ранее класса.
Находим класс DataProvider и в нём функцию _sendRequest. В неё и добавляем этот параметр.
...
request_params.v = "3.0";

if (options.params)
{
    options.params["test_mode"] = int(_testMode); // добавляем параметр 

    for (var i: String in options.params)
    {
        request_params[i] = options.params[i];
    }
}

var variables: URLVariables = new URLVariables();
...

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

VK.api('friends.get', { fields: "uid, first_name, last_name, photo" }, OnFriendsLoaded, OnRequestError);

private function OnFriendsLoaded(data: Object): void
{
}

private function OnRequestError(): void
{
}

Данный запрос вернет нам список друзей включая такие поля: id, имя, фамилия, адрес фотографии.
Список всех методов можно посмотреть здесь. Апи контакта хорошо документировано, поэтому не составит труда найти все нужные функции и их параметры.

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



Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:


Блог: http://romanlovetext.blogspot.com/