Страница 1 из 1

Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 14 янв 2011, 20:29
krivtsov
Добрый день уважаемые форумчане!
Отыскал на форуме урок по созданию простого приложения с запросом к Вконтакте API 3.0 , но как пишется запрос толком не понял.
Те кто знает как правильно отправлять запросы к Вконтакте API 3.0 распишите пожалуйста код который делал бы запрос на сервер.
Например нужно мне информация о пользователе, читаю описание методов Вконтакте API, нахожу нужный метод getProfiles,
в котором нужно передать нужные параметры и тому подобное. Так вот как будет выгледить етот запрос, если нужно, что бы приложение можно было тестировать локально не загружая в Вконтакте и просто тестируя приложение непосредственно запущенное со страницы Вконтакте.
Так же было бы неплохо если расписали хотя бы один метод из friends методов например friends.get с помощью которого было можно получать параметр
fields поля uid, first_name, last_name, nickname, sex, bdate (birthdate), city, country а также используя другие параметры етого метода у всевозможных вариациях.
Было бы очень полезно новичкам таким как я, и отпадала бы куча вопросов вроде "почему локально не работает, вроде параметры правильно передал", "компилятор выдает ошибку при тестирования приложение которое должно было работать локально, но не работает" и т.д.
Ведь расписав как правильно создавать запрос, не нужно было бы искать инфу как создать другие запросы, не смотря на то что создаются они по одному и тому же примеру, и отличаются передаваемыми параметрами.
Расскажите особенности отправке запросов ( если есть ), возможные ошибки которые могут возникнут и т.п.
Надеюсь тема не останется без внимания и знающие откликнутся.
Заранее спасибо)

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 14 янв 2011, 22:00
Александр
krivtsov
Посмотри урок для старой версии Вконтакте API 2.0 http://flapps.ru/forum/topic3.html Там сигнатура формируется вручную.
В уроке по вконтакте api 3.0, параметры сортируются автоматически.
В этих двух уроках показано использование обращение к вконтакте api без использования дополнительных классов.

Можно использовать библиотеку APIConnection. Есть урок по её использованию на примере метода getProfiles. Использование APIConnection (getProfiles). Там расписано как создавать запрос и как тестировать локально. Что тебе там не понятно?
Там же и написано, что другие методы используются аналогично. Какие ошибки могут возникнуть - написано в документации. Нет смысла описывать это очень подробно.

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 14 янв 2011, 22:57
krivtsov
1.Что касается урока по API 3.0, то локально у меня протестить никак не получается, залез в исходный код страницы с приложением , вытащил secret и sid,
поместил в код и при компилирование вот такая ошибка
/********************************************************************/
api%5Fid=2132800&sid=4e4c89e4c8467ac215412119c0afd9f0c0379d1a9d838db503dbbe2657&uids=41138144&format=XML&v=3%2E0&sig=193c0514e8786f7dd26d0380713bd413&fields=bdate%2Cphoto%5Fbig&method=getProfiles
Error opening URL 'http://api.vkontakte.ru/api.php'
Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: http://api.vkontakte.ru/api.php
at Main1/getProfile()
at Main1()
***********************************************************************/
В уроке про Вконтакте API 2.0 не расписано как тестить локально.

Если открыть приложение через некоторое время после закрытия страницы с приложением то secret и sid меняются на другие значения, так и должно быть?

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

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 15 янв 2011, 01:15
krivtsov
Так же попытался тестировать локально и с другими значениями сид ( то есть без флешварс ) и секрет - не работает. Залил в контакт и открыл со страницы - тут же приложение заработало.
И да еще вопрос , сортировка параметров по алфавиту при создание сига обязательно или нет ?
А так же вопрос по поводу создания самого запроса, в URLVariables добавляются параметры как захотелось или в тоже в алфавитном порядке.

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 15 янв 2011, 16:06
Александр
Примеры уроков без использования библиотек и сделаны для того чтобы можно было понять как происходит взаимодействие с сервером api. Чтобы понять более детально - тестируй, пробуй, меняй значения.
Про правила формирования сигнатуры написано в документации http://vkontakte.ru/developers.php?o=-1 ... %D1%81+API
krivtsov писал(а):Если открыть приложение через некоторое время после закрытия страницы с приложением то secret и sid меняются на другие значения, так и должно быть?
Через некоторое время меняются. У пользователей, которые не администраторы приложения - меняется часто.
krivtsov писал(а):сортировка параметров по алфавиту при создание сига обязательно или нет
В документации написано
пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
на практике именно так и надо.
В строке запроса порядок не важен.

Вот этот пример http://flapps.ru/forum/topic992.html у тебя работает локально? Если нет, то ты уверен, что закомментировал ненужные строки и раскомментировал нужные с параметрами?

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 15 янв 2011, 18:18
krivtsov

Код: Выделить всё

 // получаем данные из flashVars            //закоментировал вот эти строки, так как тестирую я просто в окне флешплеера а не в браузере то флешварс соответственно нету.               /*            // id просматривающего приложение             viewer_id = LoaderInfo(root.loaderInfo).parameters.viewer_id;            // secret для генерации сигнатуры            secret = LoaderInfo(root.loaderInfo).parameters.secret;            // id сессии            sid = LoaderInfo(root.loaderInfo).parameters.sid;            // адрес API-сервиса            api_url = LoaderInfo(root.loaderInfo).parameters.api_url;            */            // здесь прописал свои значение                        viewer_id = '1';            secret = 'abcd123456';            sid = 'abcd123456abcd123456abcd123456abcd123456abcd123456abcd1234';            api_url = 'http://api.vkontakte.ru/api.php';              
Я писал в предыдущим посте что работает без флешварс в браузере запуская со страницы приложения. Но локально ни в какую. К сожелению нет описания в справке от адобе ошибки Error opening URL 'http://api.vkontakte.ru/api.php', по этому не могу понять природу возникновения ошибки, то ли это проблемы с контактом то ли проблемы с кодом.
Так же сегодня даже запустить приложение со страницы со вчерашними сид и секрет не удалось, обновил значения но толку мало. Запустить локально не получается.

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 16 янв 2011, 17:06
Александр
Как ты запускаешь приложение? Нажимай Ctrl+Enter прямо во флеше и тестируй.
Если ты созданный swf просто откроешь, то будет такая ошибка - это защита безопасности.

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 16 янв 2011, 19:50
krivtsov
Во Флеш КС4 и во флешдевелопере тестировал и отдельно открывал, посмотрел глобальные параметры безопасности по этой ссылке http://www.macromedia.com/support/docum ... ger04.html и добавил местоположение, результат следующий: ошибка так и осталась, но окно с ошибкой при запуски приложения отдельно не выбивает, что делать я уже просто не знаю.

Re: Пример запроса к Вконтакте API 3.0 на пальцах

Добавлено: 20 янв 2011, 19:59
krivtsov
Проблему с запросами все таки решил. Отправлять запросы мне усердно мешал Брадмауер Windows. После того как я его отключил, старой ошибки вроде этой Error opening URL 'http://api.vkontakte.ru/api.php' не наблюдалось. )