Vk api user get php

Пример работы с VK API в PHP

Социальные сети уже давно стали частью нашей жизни. Практически у каждого пользователя есть персональная страничка в таких сервисах как вконтакте, фейсбук, твиттер и другие. И поскольку такие сервисы очень популярны в наше время, они сделали специальное API. При помощи методов которые предоставляет API конкретной системы, вы можете получить список пользователей, список фотографий, даже найти всех пользователей в определенной области на карте, список действий очень большой.

Однако, не каждый пользователь может получить доступ к этим данным. Большинство сервисов требуют регистрации и создания специального приложение, которое и будет работать с методами определенного сервиса.

Итак, сегодня мы рассмотрим пример работы с VK API, в котором будем получать список пользователей c именем «Маша» в городе «Москва». Будем искать Маш в Москве.:)

Первым делом нам нужно создать приложение. Для создания приложения переходим по ссылке(https://new.vk.com/dev -> Создать приложение).

Вводим название и поскольку мы разбираем пример на PHP используя веб-сервер, выбираем тип приложения — «Веб-сайт«. Указываем адрес вашего сайта и базовый домен(если делаете на локальном веб-сервере, пишем http://localhost). Нажимаем кнопку «Подключить сайт» и ваше приложение создано, часть пути пройдена.

Приступаем к программированию. Существует множество классов для работы с API сайтов, однако мы будем писать все сами, чтобы понять основные принципы работы.

Для получения доступа к методам API, нужно выполнить несколько шагов:

  1. Авторизировать пользователя;
  2. Получить ключ доступа;
  3. Получить access_token;
  4. Выполнить запрос к методу;
Читайте также:  Css column spacing table

4 простых шага, но на деле немного сложнее.

Авторизируем пользователя:

session_start(); $client_id = '1234567'; $redirect_uri = 'http://localhost'; $display = 'page'; $scope = 'friends,groups'; $response_type = 'code'; $auth_uri = "https://oauth.vk.com/authorize?client_id=&display=& redirect_uri=&scope=&response_type=&v=5.52";

Разбираем по пунктам, что же тут написано:

  • $client_id — идентификатор вашего приложения, присвоенный системой;
  • $redirect_uri — страница на которую будет перенаправлен пользователь после успешной авторизации;
  • $display — как отображается страница входа, в данном случае это будет отдельная страница;
  • $scope — разрешения для приложения, указывать через запятую. Полный список тут;
  • $response_type — тип ответа, в данном случае будет предоставлен JSON;
  • $auth_uri — формируем строку для авторизации пользователя, передвая нужные параметры;

С авторизацией пользователя разобрались, теперь нужно получить acces_token. После успешной авторизации нам в get запросе передают специальный код, с помощью которого мы сможем получить токен.

Получаем access_token:

if(isset($_GET['code'])) < $code = $_GET['code']; $client_secret = 'you_application_password'; $acces_uri = "https://oauth.vk.com/access_token"; $fields = array( 'client_id' =>$client_id, 'client_secret' => $client_secret, 'redirect_uri' => $redirect_uri, 'code' => $code ); $acces_uri .= "?client_id=&"; $acces_uri .= "client_secret=&"; $acces_uri .= "redirect_uri=&"; $acces_uri .= "code="; $res = file_get_contents($acces_uri); $response_string = json_decode($res,true); $_SESSION['token'] = $response_string['access_token'];

Тут все довольно просто, записываем полученный код в переменную $code , формируем ссылку с нужными нам данными — $access_uri . Далее при помощи функции file_get_contents выполняем запрос и в ответ получаем JSON объект который сразу же декодируем в массив. В конце просто полученный токен записываем в переменную сессии. Не очень хороший подход, лучше сразу писать в базу данных, однако цель этого руководства не в этом.

$client_secret — «Защищенный ключ» вашего приложения, без него работать не будет 🙂

Вот теперь у нас уже все готово для того, чтобы получить список пользователей с определенного города. Алгоритм работы очень простой: сформировать запрос, выполнить, получить данные.

if (isset($_SESSION['token'])) < $name = 'Маша'; $url = $url = "https://api.vk.com/method/users.search?city_id=1&q=&count=1000&access_token="; $res = file_get_contents($url); $users_data = json_decode($res,true); $users_count = array_shift($users_data['response']); $users_list = $users_data['response']; >

И не забываем отобразить ссылку для авторизации которая у нас сформирована и записана в переменную $auth_uri .

Данный запрос вернет нам 1000 пользователей с Москвы. На выходе мы получим количество затронутых записей и ассоциативный массив с пользователями записанный в переменную $users_list , который уже можем использовать на свое усмотрение.

Единственный нюанс в том, что API не позволяет выбрать большее количество пользователей, даже если использовать параметр offset в строке запроса. К сожалению такое ограничение в VK API.

Полный список параметров VK API для запроса можете посмотреть в документации.

Надеюсь статья была вам полезна и вы узнали что-то новое для себя, если же нет, оставляйте пожалуйста ваши комментарии.

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

Источник

Подключение и работа с vk api

vk api

Социальные сети стали неотъемлемым инструментом продвижения сайтов. Для раскрутку сайта через соц. сети следует создать группу или страничку данного сайта. Набирать подписчиков, выкладывать новости на стену и много чего ещё (это тема отдельной заметки). Многие эти процессы можно автоматизировать используя API (интерфейс прикладного программирования) соответствующей социальной сети. В этой заметке я разберу как подключиться к vk api (вконтакте), как начать работать c вк апи, а так же приведу несколько примеров работы с api вконтакте.

Создание приложения вконтакте

И так приступим. Vk api имеет много методов, но одним из основных их различий является то, что для выполнения запросов к вк апи через некоторые методы требуется специальный ключ доступа — токен (access_token). Получить его можно создав своё приложение. Нам предлагают несколько видов приложений, но я выбираю тип Standalone. Мне его хватает. Для начала создания приложения переходим по ссылке и попадаем в следующее окно.

vk api

Здесь мы выбираем тип и название нашего приложения. Нажимаем подключить приложение и получаем на номер телефона, привязанному к аккаунту вк из которого мы создаём приложение, смс с кодом. Вводим его и переходим в следующее окно. В этом окне переходим в вкладку настройки.

vk api

В вкладке настройки мы видим поля с названием ID приложения и защитный ключ. Записываем куда нибудь эти данные. Больше ничего в вкладках я не делал. Состояние приложения оставил в положении отключено. Жмём сохранить настройки. Всё, мы создали приложение вконтакте.

Получение токена (access_token) api вк

Что бы получить токен нам нужно создать ссылку определённого типа. С помощью этой ссылки мы отправим запрос серверу вк апи, в ответе сервера мы получим нужный нам токен (access_token). Синтаксис построения ссылки.

https://oauth.vk.com/authorize?client_id=[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. Данный адрес будет выглядеть так:

Вставляем данную ссылку в адресную строку браузера и переходим по ней. Нам открывается окно с подтверждением действия и заданными нами правами.

vk api

Подтверждаем действие и попадаем на страницу с предупреждением, из адресной строки браузера берём наш полученный токен. Это будет после #access_token= , код expires_in=0 говорит нам что токена (access_token) api вк бессмертный. Соответственно user_id= это id пользователя, для которого мы получили токен.

vk api

Зайдём в настройки аккаунта во вкладку настройки приложений и увидим наше приложение.

vk api

Теперь у нас всё готово для работы с апи вконтакте.

Примеры работы с 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[0]->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 и автоматизировать свои действия в контакте.

Источник

Оцените статью