Підключення та робота з vk api

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

Як отримати access_token?
Ми будемо розглядати метод авторизації у соціальній мережі ВКонтакті за прямим посиланням через API ВКонтакте (на базі протоколу OAuth), іменований Implicit flow. Авторизація таким методом виконується через програму ВКонтакте, вказану у вигляді ID. Це найбезпечніший спосіб авторизації. В інтернеті ви можете знайти велику кількість статей, як ця, про отримання access_token через різні підозрілі програми. Ми підемо іншими шляхами – розберемо способи авторизації через власний додаток або офіційний додаток ВКонтакте.

Спосіб отримання токена полягає в переході за спеціальним посиланням, що містить ID деякої програми ВКонтакте, виду:

Цитата

200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id= ID_ДОДАТКИ&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank. html&display=page&response_type=token


Все питання в тому, де ж взяти це ID_ДОДАТКИ. Як я і обіцяв, ми розглянемо 2 способи:
  • Отримання токена через власний додаток.

    Такий метод отримання токена має на увазі, що у вас є власний додаток. У такому разі пропустіть кілька кроків. Ми ж відштовхуватимемося від факту, що своєї програми у вас немає, а значить вам потрібно її створити. Для цього необхідно перейти на сторінку управління своїми програмами за посиланням vk.com/apps?act=manageта натиснути на кнопку « Створити програму».


    Введіть назву для майбутньої програми, наприклад, « Отримання access_token», переконайтеся, що стоїть галочка « Standalone-додаток» та натисніть на кнопку « Підключити програму».


    Далі потрібно затвердити програму, отримавши на телефон код підтвердження та ввівши його у спеціальне поле. Також, у процесі затвердження програми ви можете прив'язати свій мобільний пристрій до облікового запису ВКонтакте. Для цього натисніть кнопку « Прив'язати пристрій». Інакше просто натисніть на посилання « Підтвердити через SMS» без прив'язки пристрою до сторінки.


    Після підтвердження у вас відкриється сторінка з інформацією про створену програму. У меню зліва натисніть на пункт « Налаштування». Там і розташовується ваш так званий client_id, тобто ID вашої програми ВКонтакті.


    Цей ID потрібно скопіювати та вставити в наше посилання замість ID_ДОДАТКИ. Повинно вийти приблизно так:

    200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video, notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token


    5563738 – це ID нашої програми. Ви матимете схоже число.
  • Отримання токена через офіційний додаток ВКонтакте.

    Цей метод абсолютно ідентичний попередньому за винятком того, що ви не створюєте власний додаток, а використовуєте вже створений офіційний додаток ВКонтакте, якому можна довіряти.

    Як приклад ми візьмемо програму ВКонтакті для Android. Його ID наступний: 2890984 . У результаті, підставляючи його на заслання, вона набуде наступного вигляду:

    200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id=2890984&scope=notify,photos,friends,audio,video, notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

На цьому ми завершили частину, що стосується ідентифікатора (ID) програми, яка використовується під час авторизації. Але залишилося уточнити ще кілька моментів.

Ми настійно не рекомендуємо:
  • Надавати отриманий access_token третім особам.
  • Проходити авторизацію через сумнівні програми (крім вашого власного чи офіційного).
Ми також рекомендуємо:
  • Після використання згенерованого access_token видаляти його. У разі потреби завжди можна згенерувати новий.
  • Завершувати всі активні сеанси в налаштуваннях безпеки вашого облікового запису ВКонтакте. Це швидкий спосіб вимкнути всі активні ключі доступу (access_token).
А тепер, після того, як ви ознайомилися з інформацією вище, ви можете приступити до створення власної програми для генерації свого access_token або перейти за посиланням для генерації access_token через програму ВКонтакте для Android за допомогою кнопки нижче:

Що таке токен вк? Нині технології розвиваються з дуже швидким темпом. Поруч із ними й соціальні мережі набирають величезні обороти. Не мати облікового запису хоча б в одній із соцмереж – вже неможливо для кожної людини, принаймні серед молодих людей та дівчат. Щодня вони поповнюються терабайтами фотографій, відео та навіть примітивної одиниці знань тексту.

Що таке токен вк

Але на жаль про особливі «фішки» цього ресурсу знають мало хто. Хтось дійсно проводить там мало часу, комусь вони просто не потребують.
Однією з таких прикмет є так званий «токен» в цій соцмережі, мало користувачів знає про те, що таке токен вк.

Що таке access token вконтакті.

Токен вк – це довгий рядок, що складається із символів: цифр та букв латинського алфавіту. Здавалося б, нічого особливого в ній немає, але вона дає великі можливості користувачу, який її активував.

Наприклад, писати певні повідомлення певній людині, відображати вічний онлайн вашої сторінки, ніби ви завжди сидите на сайті. Останній варіант дає великий плюс, адже нещодавно невидимку в контакті прибрали і за допомогою токена ніхто не зможе зрозуміти, коли саме ви були онлайн, адже він відображається постійно. Ставити статус, писати на стіні тощо

Як отримати token вконтакті.

Процес отримання токена проводиться через додаток. Його вам потрібно створити самим, це можна зробити, перейшовши за посиланням vk.com/apps?act=manage і натиснувши кнопку створення. У назву вписуємо все, що вам завгодно. Тип вибираємо найперший. Далі проходимо підтвердження за допомогою мобільного телефону.

Виходить сторінка вашої програми, вибираєте "Налаштування" і там буде довгий набір зірочок і зверху від нього айді.

https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads, offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Як дізнатися про свій token в контакті.

Виконавши все вищеописане, вам вилізе віконце, там ви погоджуєтесь з усім і натискаєте кнопку «Дозволити».

Здається складно, але насправді отримати токен в вк може кожне, інше питання навіщо? 99% користувачам вк, його знання абсолютно не потрібне. Так само поспішаємо застерегти вас не давайте і не вписуйте свій токен на сумнівних ресурсах інакше ваша сторінка може опинитися в руках зловмисника. Так, наприклад, вас можуть підписати на різні групи або спільноти без вашого відома, поставити вам сумнівний статус або опублікувати від вашого імені повідомлення на вашій стіні.

Розробникам досить часто доводиться стикатися з додатками та сервісами, які у процесі взаємодії із соціальною мережею Вконтакте, вимагають ключ доступу — access_token.

У цій інструкції ми розберемо два дуже схожі методи, що дозволяють отримати його.

Як проходитиме процес

Все, що від нас буде потрібно, підставити в URL адресу id програми. Також є редагування розділів, до яких ми дозволяємо доступ через створюваний access_token.

По суті, ми сформуємо готовий урл і підставимо id двох різних додатків. У цьому полягатиме різниця. Після цього здійснимо перехід за готовим посиланням, і отримає ключ доступу.

Посилання для отримання ключа

Ось готова url адреса. Тут нас насамперед цікавлять дані після знака =. У прикладі нижче там написано ID-додатки. Ми, у свою чергу, підставимо там конкретну кількість.

Https://oauth.vk.com/authorize?client_id=ID-додатки&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats, ads,offline&redirect_uri=https://api.vk.com/blank.html&display=page&response_type=token

Також зверніть увагу на дані після слова «scope» . Тут ми перераховуємо розділи, до яких ключ відкриє доступ. Щоб заборонити застосунку доступ до розділу з нашими друзями, приберіть із посилання текст «friends» . Решта за аналогією.

Тепер залишилося лише отримати ID.

Отримуємо ID через власний додаток

Для його створення нам потрібно перейти у відповідний розділ, доступний у кабінеті для розробників. Перейдіть туди за посиланням.

Https://vk.com/apps?act=manage

І натисніть кнопку "Створити додаток".

Вкажіть назву та тип програми (див. ). Потім натисніть кнопку «Підключити програму».

З недавнього часу всі операції в кабінеті для розробників потрібно підтверджувати через СМС. У вікні виберіть пункт «Підтвердити через СМС». Отримайте код на мобільний телефон, а потім введіть його у форму.

Програма буде створена. Тепер перейдіть на вкладку "Налаштування" . Тут у блоці буде вказано потрібний нам набір цифр. Скопіюйте його.

Тепер ми маємо все необхідне.

Використовуємо ID офіційної програми Вконтакте

Другий спосіб отримання айдішника - це просто взяти готовий додаток. І найкраще - офіційний додаток Вконтакте для Android. Його ID - "2890984". Можете використати.

Отримуємо Access_token

Https://oauth.vk.com/authorize?client_id=2890984&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads, offline&redirect_uri=https://api.vk.com/blank.html&display=page&response_type=token

У браузері відкриється сторінка, на якій вказано повідомлення про те, що не варто надавати ключ доступу третім особам. А в адресному рядку браузера сформований ключ. Він знаходиться між значеннями "access_token=" та "&expires_in" . Скопіюйте його.

Висновок

Ключ можна оновити, повторивши описані кроки. Утримуйтеся від його поширення третім особам, а також від отримання ключа, використовуючи ненадійні програми та послуги. Розглянутий спосіб найбезпечніший.

Соціальні мережі стали невід'ємним інструментом для просування сайтів. Для розкручування сайту через соц. мережі слід створити групу або сторінку цього сайту. Набирати передплатників, викладати новини на стіну та багато чого ще (це тема окремої нотатки). Багато цих процесів можна автоматизувати, використовуючи API (інтерфейс прикладного програмування) відповідної соціальної мережі. У цій замітці я розберу як підключитися до vk api (вконтакте), як почати працювати з вк апі, а також наведу кілька прикладів роботи з api вконтакте.

Створення програми вконтакті

І так приступимо. Vk api має багато методів, але однією з основних їх відмінностей є те, що для виконання запитів до вк апі через деякі методи потрібен спеціальний ключ доступу - токен (access_token). Отримати його можна створивши свою програму. Нам пропонують кілька видів програм, але я вибираю тип Standalone. Мені його вистачає. Для початку створення програми переходимо за посиланням і потрапляємо до наступного вікна.


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


У вкладці налаштування ми бачимо поля з назвою ID програми та захисний ключ. Записуємо кудись ці дані. Більше нічого у вкладках я не робив. Стан програми залишив у положенні вимкнено. Тиснемо зберегти налаштування. Все, ми створили програму вконтакті.

Отримання токена (access_token) api вк

Https://oauth.vk.com/authorize?client_id= &display= [вигляд вікна]&redirect_uri=https://oauth.vk.com/blank.html&scope= [права програми]&response_type=token&v=5.52

  • client_id - ID нашої програми, отриманої раніше.
  • display – вид вікна, в якому відбуватиметься авторизація. Можливо page, popup, touch та wap
  • scope – права доступу нашої програми щодо даних користувача. Про права детальніше нижче.

Права програми вк щодо заданого користувача можуть задаватися в текстовому та цифровому вигляді. У текстовому це виглядатиме так scope=friends,messages,groups. Цим рядком коду ми дозволили додатку vk доступ до друзів, повідомлень та груп користувача. Також права задаються й у цифровому вигляді. Для кожного правила є бітова маска та сума цих масок і дозволятиме додатку певні дії. Наприклад, право friends(+2), messages(+4096), groups(+262144), у результаті сума бітових масок буде 266242 і код scope=266242 буде аналогом scope=friends,messages,groups . Окрему увагу хочу приділити праву offline. Установка цього права робить токен, що отримується нами, нескінченним. Якщо це право не поставити через певний час, то токен потрібно буде отримувати знову. Докладніше про права програми вк можна почитати тут. У результаті давайте складемо адресу для отримання токена додатку з правами доступу до друзів, повідомлень та груп користувача, а також з безсмертним токеном. Id програми нехай буде 123456. Ця адреса буде виглядати так:

http://oauth.vk.com/authorize?client_id=123456&display=page&redirect_uri=https://oauth.vk.com/blank.html& scope=friends,messages,groups,offline&response_type=token&v=5.52


Підтверджуємо дію і потрапляємо на сторінку з попередженням, з адресного рядка браузера беремо отриманий токен. Це буде після #access_token= , код expires_in=0 говорить нам, що токена (access_token) api вк безсмертний. Відповідно user_id= це id користувача, котрій ми отримали токен.

Зайдемо в налаштування облікового запису у вкладку налаштування програм і побачимо нашу програму.


Тепер у нас все готове до роботи з апі вконтакті.

Приклади роботи з api vk

Для роботи з api вк я використовую мову програмування php. Тому і приклади я наводитиму на php. Для того, щоб виконати якусь дію, нам потрібно надіслати запит до api vk. Запит ми можемо надіслати через адресний рядок браузера. Тобто запит це є певна урла адреса із заданими в ньому певними параметрами. Синтаксис складання такого урлу описано нижче.

Https://api.vkontakte.ru/ method/[МЕТОД, ЩО ВИКЛИКАЄТЬСЯ]?

Список методів api vk знаходиться тут. Більше поки що загострювати на цьому уваги не будемо, потім на реальних прикладах все стане ясно. Залишилося тільки розібратися як запит до апі вконтакті надіслати засобами php. Для цього будемо використовувати php функцію file_get_contents , а так само функцію json_decode оскільки відповідь від сервера ми отримаємо у форматі json. Ось шаблон виконання запиту до вк на php.

$result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/[ВИКЛИКОВИЙ МЕТОД]?[ПАРАМЕТРИ МЕТОДУ, що ВИКЛИКАЄТЬСЯ]"));

ну а тепер кілька прикладів роботи з апі vk

$userid=12345; $ mytoken = 56789; /*поверне об'єкт із значеннями статі та дня народження користувача*/ $request_params = array("user_id" => $userid, "fields" => "sex", "fields" => "bdate"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); /*перевірка користувача на банк */ $request_params = array("user_id" => $user_id, "fields" => "deactivated"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); if(isset($result->response->deactivated))( echo "Сторінка заморожена або видалена"; ) /*надправимо повідомлення користувачеві з user_id=222222*/ $mesage="Привіт, як справи?"; //кодуємо рядок $msg=urlencode($mesage); $result = json_decode(file_get_contents("https://api.vkontakte.ru/method/ messages.send?user_id=222222& message=".$msg."&access_token=".$mytoken)); /*запрошуємо в друзі користувача з user_id=222222*/ $mesage="Давайте дружити"; $msg=urlencode($mesage); $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/friends.adduser_id=222222& text=".$msg."&access_token=".$mytoken));

Методів у апі багато, тож раджу читати документацію. Звичайно, запити не завжди виконуються правильно і повертають коди помилок. Помилки можна подивитися тут. Так що ось так просто можна підключитися до api vk і автоматизувати свої дії в контакті.