Висновок записів зі стіни спільноти Вконтакте на PHP
- 1. Створимо Standalone-додаток і отримаємо його токен:
- 2. Сформуємо посилання-запит для отримання даних в json форматі використовуючи VK API:
- 3. Напишемо невеликий скрипт на php і в ньому виведемо інформацію, обробивши правильно запит з інформацією:
Вчора ввечері, один чоловік попросив вивести записи зі стіни спільноти вконтакте на його сайт, який написаний на мові програмування PHP. Проблема полягала в тому, що його морозив виконавець, який годував сніданками, то не хотів робити, а то просто просив дані від його сторінки вконтакте. Так ось я просто і популярно розпишу до дрібниць, як вивести записи спільноти vk на своєму сайті за допомогою php, причому безкоштовно!
По суті можна вивести не тільки новини, але і все що завгодно і не обов'язково в групі. Але для цього вже читайте офіційну документацію VK API.
Отже поїхали, трохи про те, що ми з вами в цій статті будемо робити:
- Створимо Standalone-додаток і візьмемо його token
- Сформуємо посилання-запит для отримання даних в json форматі використовуючи VK API
- Напишемо невеликий скрипт на php і в ньому виведемо інформацію, обробивши правильно запит з інформацією
Ось власне і все за нашим планом, тепер перейдемо до реалізації. А почнемо ми по порядку з самого першого пункту.
1. Створимо Standalone-додаток і отримаємо його токен:
Для створення програми можете в управління додатками, в меню ви знайдете пункт "Управління" - туди то вам і треба.
Якщо у вас немає такого пункту, не впадайте у відчай. Ви можете включити його показ в налаштуваннях облікового запису вк, або можете перейти просто по посиланню:.
Натискаємо кнопочку "Створити додаток" і на наступній сторінці вводимо назву програми і вибираємо тип "Standalone-додаток", натискаємо кнопку "Підключити додаток".
Йдемо далі, нам потрібно отримати наш token цього додатка, який ми будемо використовувати в нашому запиті для отримання інформації через VK API. Для цього перейдемо в редагування додатки і відкриємо вкладку "Налаштування". На ній нам потрібно взяти "Сервісний ключ доступу" - це і є наш токен, для запиту.
З першим завданням ми впоралися, можемо рухатися далі.
2. Сформуємо посилання-запит для отримання даних в json форматі використовуючи VK API:
Тепер нам потрібно сформувати посилання-запит за допомогою якого ми будемо отримувати даний, використовуючи VK API. Отримувати як ви вже зрозуміли, ми будемо в json форматі, вконтакте стандартно віддає інформацію через API за допомогою json.
Нижче я навів запит, який використовував для отримання даних, в ході цього уроку ми і будемо з ним працювати:
https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id=id_группы&count=количество_записей&v=5.67&access_token=токен
https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id=id_группы&count=количество_записей&v=5.67&access_token=токен
Думаю тут гранично зрозуміло все, але уточню деякі моменти:
method - тут вказуємо використовуваний метод, ми в даний момент використовуємо wall.get.
owner_id - Тут ми вказуємо ID групи або сторінки користувача вк. Будьте уважнішими, якщо ми хочемо використовувати групу (співтовариство) і працювати з ним, то перед ID повинен стояти знак "-" і буде це виглядати приблизно так "-87165069".
count - Кількість одержуваних даних. Вказуйте ціле число від 1 до 100. Більше 100 отримати не вийде, обмеження VK API.
access_token - Токен, який ми отримували раніше в ході 1 пункту. Він і буде давати можливість працювати з даними.
v = 5.67 - Версія використовуваного VK API. Можете в цілому не міняти.
На цьому тут все, іншу інформацію по VK API можете знайти на сайті вк, в розділі для розробників. А тим часом йдемо далі ...
3. Напишемо невеликий скрипт на php і в ньому виведемо інформацію, обробивши правильно запит з інформацією:
Дані при отриманні за такою ось посиланням (з пункту 2), ми отримуємо в форматі json, так уже склалося, що VK API віддає всю інфу в такому типі ... Нам же потрібно перетворити все в масив, для подальшої обробки і значення цього масиву вивести.
Нижче ви можете побачити скрипт, які я написав, кожного значення-настройка винесені в самий верх файлу, для зручності. Кожен рядок підписана і думаю у вас не виникне проблем з цим кодом.
// ID нашої спільноти або сторінки вконтакте $ wall_id = "-86529522"; // Видаляємо мінус у ID груп, що ми використовуємо вище (знадобиться для посилання). $ Group_id = preg_replace ( "/ - / i", "", $ wall_id); // Кількість записів, яке нам потрібно отримати. $ Count = "3"; // Токен $ token = "2e73ed992e73ed992e73ed99da2e2e80f322e732e73ed997700261c9465df4bf4a1eeff"; // Отримуємо інформацію, підставивши всі дані вище. $ Api = file_get_contents ( "https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id= {$ wall_id} & count = {$ count} & v = 5.58 & access_token = {$ token}"); // Перетворимо JSON-рядок в масив $ wall = json_decode ($ api); // var_dump ($ wall); // Отримуємо масив $ wall = $ wall -> response -> items; // Обробляємо дані масиву за допомогою for і виводимо потрібні значення for ($ i = 0; $ i <count ($ wall); $ i ++) {echo "<b>". ($ I + 1). "</ B>. <I>". $ Wall [$ i] -> text. "</ I> <br />". date ( "Ymd H: i: s", $ wall [$ i] -> date). "<br /> https://vk.com/wall- {$ group_id} _ {$ wall [$ i] -> id}"; }
// ID нашої спільноти або сторінки вконтакте $ wall_id = "- 86529522"; // Видаляємо мінус у ID груп, що ми використовуємо вище (знадобиться для посилання). $ Group_id = preg_replace ( "/ - / i", "", $ wall_id); // Кількість записів, яке нам потрібно отримати. $ Count = "3"; // Токен $ token = "2e73ed992e73ed992e73ed99da2e2e80f322e732e73ed997700261c9465df4bf4a1eeff"; // Отримуємо інформацію, підставивши всі дані вище. $ Api = file_get_contents ( "https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id={$wall_id}&count={$count}&v=5.58&access_token={$token}"); // Перетворимо JSON-рядок в масив $ wall = json_decode ($ api); // var_dump ($ wall); // Отримуємо масив $ wall = $ wall-> response-> items; // Обробляємо дані масиву за допомогою for і виводимо потрібні значення for ($ i = 0; $ i <count ($ wall); $ i ++) {echo "<b>". ($ I + 1). "</ B >. <i> ". $ wall [$ i] -> text." </ i> <br /> ".date (" Ymd H: i: s ", $ wall [$ i] -> date). "<br /> https://vk.com/wall-{$group_id}_{$wall[$i]->id}"; }
Трохи інформації за цим кодом:
$ wall [$ i] -> date - Отримання дати, де date - назва поля, яке нам потрібно отримати. З рештою все стандартно, міняємо назву поля з масиву на потрібне і отримуємо значення. На сторінці з інформацією по wall.get VK API - можете знайти назви полів і приклад детального коду.
Ось власне і все. Для наочного прикладу я взяв групу VK FEST, так як в моїй немає ніяких записів з текстом, а вивести він зможе тільки дату і посилання на пост (про картинки та інші медіа я не кажу).
На цьому все, код можете допив під себе і доробити висновок тих елементів, які вам потрібні. Дякую за увагу, якщо залишилися якісь питання або доповнення, пишіть їх в коментарях розберемо, доповнимо ...
Схоже в блозі
Php?Php?
Php?
Php?