Авторизация вконтакте
Первым делом давайте создадим страницу с ссылкой Авторизация, кликнув по которой пользователь будет перенаправлен на страницу авторизации ВКонтакте. Для этого создадим файл index.php:
Данная страница выглядит следующим образом:
Как Вы видите путь в ссылке Авторизация ведет на вспомогательный файл auth.php, который будет обрабатывать данные нашего скрипта. Теперь давайте создадим файл конфигурации config.php и добавим несколько констант:
Вход в личный кабинет без пароля
Система ВКонтакте используется миллионами пользователей и запускается на разных компьютерах и мобильных устройствах. Именно поэтому возможность посещать свой личный кабинет без пароля является очень полезной. Она пригодится на случай, если пароль забыт, но при этом нужно срочно зайти в сеть, чтобы прочитать важные сообщения.
Получение access_code
Далее необходим получить ключ доступа к данным пользователя, используя полученный параметр code. Для этого в файл auth.php добавим следующий код:
Кстати если во время авторизации возникли ошибки, то вместо параметра code, придет параметр error – код ошибки, вместе с ее описанием — error_description. Поэтому если мы действительно получили code, значит, запишем его в свойство класса и вызовем метод get_token(), который получит access_token. Теперь в класс Auth_Vk добавим код метода get_token():
Для получения access_token необходимо отправить запрос по адресу хранящимся в константе URL_ACCESS_TOKEN, и передать следующие параметры, используя метод GET:
client_id – идентификатор приложения;
client_secret – секретный код;
code – полученный code;
redirect_uri – здесь нужно указать тот же адрес, что и для получения code.
Запрос отправлять будем используя библиотеку CURL. При этом ответ от сервера ВКонтакте придет в формате строки JSON. Значит, используя функцию json_decode(), декодируем данную строку в объект. Объект мы получим следующего вида:
В случае ошибки мы получим следующее:
То есть мы получим объект у которого будет либо свойство access_token, либо свойство error. Поэтому, если мы получаем access_token – запишем его значение и идентификатор пользователя в соответствующие свойства класса и вернем TRUE, если же придет ошибка — запишем ее в сессию и вернем FALSE.
Получение данных пользователя
После того, как мы получили ключ доступа access_token – можно получить данные пользователя. Для этого в файл auth.php добавим следующий код (после вызова метода get_token()):
Регистрация личного кабинета вконтакте
Сложность заключается в том, что социальная сеть постоянно обновляется, вводятся дополнения и улучшения для удобства использования ресурса. Именно поэтому процесс регистрации изменяется почти каждые 1-2 года. На данный момент чтобы зарегистрировать личный кабинет ВКонтакте, нужно следовать инструкции:
Создание приложения в контакте
Для создания механизма авторизации через социальную сеть ВКонтакте, у Вас обязательно должен быть ее акаунт. Также необходимо создать приложение, потому как данные пользователей получит именно Ваше созданное приложение, которое также необходимо для идентификации того, кто получает данные.