DELPHI РОБОТА З VKONTAKTE API - Мережі та інтернет - Програмування - Каталог статей - Delphi land
Відразу хочу сказати, що тут ми не писатимемо МЕГА крутий додаток. В уроці показано лише способи взаємодії Desktop програми на Delphi та Vkontakte API, зрозумівши який ви самостійно зможете доопрацювати наявний вихідник.
На сторінці, що відкрилася в правому верхньому кутку натискаємо на кнопку "Створити додаток",
після цього заповнюємо необхідні поля.

- Назва - виставляємо будь-яке на ваш смак,
- Тип - Desktop-додаток.
- Категорія – інше.
- Після того, як всі заповнили, натискаємо на кнопку "перейти до завантаження програми".
Вітаю, малу частину від спільної роботи ви зробили, далі в правому верхньому кутку натискаємо на кнопку "Налаштування" і на наступній сторінці ви побачите id своєї програми у мене це 1905253. Запам'ятайте його, надалі він нам знадобиться!

Ну а зараз відкриваємо Delphi і створюємо новий проект, на форму кидаємо компоненти Button, Edit із закладки standard і компонент WebBrowser із закладки Internet, в принципі якщо добре подумати можна обійтися і без компонента WebBrowser, але якщо чесно не хочу зараз ламати собі голову)) можливо, ви знайдете рішення обходитися без нього. Тим більше потрібен він нам тільки на самому початку для того, щоб увійти і отримати сесію, далі можна буде обходитися компонентом idhttp.
-
app - Так з параметрами ми начебто розібралися, а зараз створимо запит до сторінки http://vkontakte.ru/login.php. Для цього створюємо обробник подій OnClick на нашій кнопці, між begin end вставляємо наступний код:
Тут за допомогою події Navigate говоримо компоненту WebBrowser1 перейти на сторінку, http://vkontakte.ru/login.php тобто. робимо POST запит, плюс у ньому ж передаємо необхідні параметри:
-
app=1905253– тут замість (1905253) необхідно підставити про всі ці параметри я писав вище, тому повторюватися не буду. Єдине скажу, що між параметрами ставиться роздільний символ &
http://vkontakte.ru/api/login_success.html#session=%7B%22 mid %22%3A63790444%2C%22 sid %22%3A%22756d0c7c91db66f66f82dba3cb5b6729 2%2C%22 secret % 22%3A%224c63d7e10d%22%2C%22 expire %22%3A1279018989%2C%22 sig %22%3A%228a5ea3f9ee8c57781782d402d6eea5ed2
тобто. тут все, що йде після login_success.html, є інформацією про сесію, де в session записані параметри сесії у форматі JSON. (Для зручності я виділив кожен параметр жирним)
Тепер поясню значення кожного параметра:
- mid у ньому зберігається >sid у ньому зберігається Ідентифікатор сесії, який при кожному новому підключенні буде різний, у моєму випадку він дорівнює 756d0c7c91db66f66f82dba3cb5b67be6629d2295f878d9a702.
- secret зберігає в собі Спеціально згенерований секрет сесії, в моєму випадку він дорівнює 4c63d7e10d
- expire у ньому зберігається час закінчення сесії у форматі UNIX, у моєму випадку дорівнює 1279018989
Всі ці параметри знадобляться нам для подальшої роботи, тому якщо вам щось зрозуміло раджу уважно почитати тут
Авторизацію ми пройшли, що ж далі.
Скажу вам чесно, що далі можна робити ПРАКТИЧНО все що завгодно). Переглядати інформацію про користувачів, ставити повідомлення в чергу, зберігає запис на стіні користувача, отримувати список аудіозаписів користувача та багато іншого. Повний список усіх методів ви можете подивитися тут
Ну а ми почнемо, мабуть, із найпростішого методу: getUserInfoEx - який повертаєрозширену інформацію про поточного користувача. Для цього ми повинні передати серверу 5 обов'язкових параметрів:
Ну що ж, спробуємо сформувати такий запит. Спочатку маємо рядок http://api. vkontakte.ru/api.php, як було сказано вище, нам необхідно як параметр передати ідентифікатор програми, тобто. api_id
В результаті отримуємо:
http://api.vkontakte.ru/api.php? api_id =1905253
Ускладнюємо наш запит вказуємо формат даних, що передаються, в результаті отримуємо:
http://api.vkontakte.ru/api.php? api_id =1905253& format =XML
Рухаємося далі вказуємо API метод, який будемо використовувати в нашому випадку getUserInfoEx, отримуємо:
http://api.vkontakte.ru/api.php? api_id =1905253& format =XML& method =getUserInfoEx
Далі, нам необхідно додати в запит параметри sig і sid, звідки їх брати і як розраховувати я розповім у наступній частині, а на цьому поки що все. Можливо скоро буде урок про те Як знизити друга в рейтингу у друзях Вконтакте та як приховати статус онлайн