Як працювати з API ВКонтакте

У мене часто запитують, як працювати з API. Найбільш, популярної завданням, пов'язаної з API, є - робота з API ВКонтакте. У даній статті я покажу, як працювати з API ВКонтакте, а, головне, покажу Вам, що все API працюють за єдиним принципом.

Ось порядок дій, який Вам необхідно зробити, щоб почати працювати з будь-яким API:

  1. Знайти документацію по потрібному API.
  2. Подивитися приклади підключення до API. Тут можуть бути різні варіанти. Наприклад, на одному сервісі зажадають секретний ключ, що видається після реєстрації. На другому сервісі, всі запити не вимагають секретних ключів. На третьому сервісі, є і з секретним ключем, і без варіанти роботи. Іноді, секретний ключ називають токеном.
  3. Скопіювати простий готовий код з сайту документації і перевірити його роботу. Якщо не працює, то шукайте помилку у себе, бо навряд чи вона буде у сервісу.
  4. Знайти в документації метод, який вирішує Вашу задачу.
  5. Використовуючи приклади і опис методу, відправити правильний запит до API.
  6. Залежно від формату відповіді, розібрати його на "складові частини", а далі вже робити те, що потрібно - вивести користувачеві, зберегти в файл, відправити в базу даних тощо.

А як приклад проходження даної інструкції ми розберемо API ВКонтакте. Отже:

  1. Посилання на документацію .
  2. В даному випадку є методи, які є загальнодоступними, а тому не вимагають токена, а є методи, що вимагають його.
  3. В даному випадку, прикладів на конкретній мові я не знайшов. Можливо, вони є, але явно не на виду. Зазвичай же, у API для кожного методу є приклади на різних мовах.
  4. Ми хочемо вивести 5 останніх записів зі стіни конкретного користувача, а потім вивести їх у себе на сайті. Потрібний нам метод тут .

Тепер ми повинні відправити запит до API, використовуючи опис методу. Робити ми це будемо через PHP:

<? Php
$ Wall = file_get_contents ( "https://api.vk.com/method/wall.get?v=5.3&filter=others&domain=myrusakov&count=5");
print_r ($ wall);
?>

В даному випадку, я використовую API 5.3 (v = 5.3), виводжу все записи незалежно від автора (filter = others) зі своєї сторінки (domain = myrusakov) в кількості 5 штук (count = 5). Думаю, що тут все дуже прозоро.

Ми отримали відповідь в форматі JSON, і тепер нам потрібно перейти до останнього пункту - розібрати відповідь на "складові частини". Далі ми з Вами виведемо записи зі стіни в більш-менш читабельному вигляді на сторінці нашого сайту. Результуючий PHP-код:

<? Php
$ Wall = file_get_contents ( "http://api.vk.com/method/wall.get?v=5.3&filter=others&domain=myrusakov&count=5"); // Відправляємо запит
$ Wall = json_decode ($ wall); // Перетворимо JSON-рядок в масив
$ Wall = $ wall-> response-> items; // Отримуємо масив коментарів
for ($ i = 0; $ i <count ($ wall); $ i ++) {
echo "<p> <b>". ($ i + 1). "</ b>. <i>". $ wall [$ i] -> text. "</ i> <br /> <span> ".date (" Ymd H: i: s ", $ wall [$ i] -> date)." </ span> </ p> "; // Виводимо записи
}
?>

Як бачите, все дуже просто. Найскладніша частина - розібрати на складові елементи. Я вважаю за краще виводити результат від API через print_r, а вже потім писати обробку цього. Хоча можна подивитися приклад відповіді в описі методу, а далі вже написати парсер.

Ось так відбувається робота з API ВКонтакте, і абсолютно аналогічно вона відбувається з будь-яким іншим API.

Додавайтеся до мене в друзі ВКонтакте: http://vk.com/myrusakov .
Якщо Ви хочете дати оцінку мені і моїй роботі, то напишіть її в моїй групі: http://vk.com/rusakovmy .

Якщо Ви не хочете пропустити нові матеріали на сайті,
то Ви можете підписатися на оновлення: Підписатися на оновлення

Якщо у Вас залишилися які-небудь питання, або у Вас є бажання висловитися з приводу цієї статті, то Ви можете залишити свій коментар внизу сторінки.

Запропонуйте цю статтю друзям:

Якщо Вам сподобався сайт, то розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):

  1. кнопка:

    Вона виглядає ось так: Вона виглядає ось так:

  2. Текстова посилання:

    Вона виглядає ось так: Як створити свій сайт

  3. BB-код посилання для форумів (наприклад, можете поставити її в підписі):

Get?