получение токена вк php
API VK — Создаём Standalone-приложение и получаем token.
Для того, что бы у нас была возможность воспользоваться API ВКонтакте, необходимо создать Standalone-приложение и получить “token”. После чего нам станет доступна возможность использовать методы API VK. В данной статье пойдёт речь о том, как создать Standalone-приложение, получить его ID, и получить token.
API VK — Создаём Standalone-приложение и получаем token.
Создаём Standalone-приложение в ВК и получаем ID.
Для начала нам необходимо создать наше Standalone-приложение в ВК. Для этого переходим на страницу создания приложения. Вбиваем название приложения, выбираем платформу «Standalone-приложение» и нажимаем кнопку «Подключить приложение».Дальше ВК нас попросит подтвердить создание приложения и предложить выслать СМС. После подтверждения вас перекинут на страницу с информацией о приложении, нас интересует вкладка «Настройки», там мы можем получить «ID приложения».
Всё, что необходимо от приложения, мы получили, не каких дополнительных настроек производить не нужно.
Получаем токен для использования API VK.
Теперь нам необходимо получить токен, он же «access_token». Токен — это набор различных цифр и латинских букв, которую мы будем передаете на сервер вместе с запросом.
Для того, что бы его получить, нам необходимо в браузере вбить следующую строку:
В “scope=” вы указываете нужные вам права через запитую. Например, если мы хотим ещё использовать метод “friends.add”, для него необходимы права “friends”, то в строке указываем следующее: “scope=groups,friends,offline“. Название прав для определённых методов можно узнать на странице методов ВК.
После того как мы перейдём по ссылке выскочит такое окно:Нажимаем разрешить и попадаем на страницу где мы можем получить наш токен.
Если быть точнее нам необходима часть строки ссылки в браузере, которая нам вернулась. К примеру мы получаем ссылку вида:
Вот все символы, что идут между «…access_token=» и до «&expires_in…» и есть наш ключ доступа, он же токен. Мой токен будет таким:
Дальше Вы его уже можете использовать для ваших нужд.
Немного об API Вконтакте
Обращение к API Вконтакте происходит с помощью http-запросов, некой ссылкой, в которой мы передаём нужные нам значения. Ссылка выглядит примерно так:
Получение токена вк php
Для работы со всеми методами API Вам необходимо передавать в запросе access_token — специальный ключ доступа. Он представляет собой строку из латинских букв и цифр и может соответствовать отдельному пользователю, сообществу или самому Вашему приложению.
В API ВКонтакте для получения ключа доступа используется открытый протокол OAuth 2.0. При этом пользователь не передает логин и пароль приложению, поэтому его аккаунт не может быть скомпрометирован.
Мы поддерживаем три способа получения ключа доступа по OAuth 2.0:
1. Implicit flow — самый короткий и простой вариант. Ключ возвращается на устройство пользователя, где был открыт диалог авторизации (в виде дополнительного параметра URL). Такой ключ может быть использован только для запросов непосредственно с устройства пользователя (например, для выполнения вызовов из Javascript на веб-сайте или из мобильного приложения).
2. Authorization code flow — двухэтапный вариант с дополнительной аутентификацией Вашего сервера. Ключ доступа возвращается непосредственно на сервер и может быть использован, например, для автоматизированных запросов из PHP.
3. Client credentials flow — авторизация по секретному ключу приложения. Этот подход необходимо использовать только для доступа к специальным secure-методам.
Такой ключ требуется для работы со всеми методами нашего API, за исключением методов секции secure.
Ключ доступа — своего рода «подпись» пользователя в Вашем приложении. Он сообщает серверу, от имени какого пользователя осуществляются запросы, и какие права доступа он выдал Вашему приложению.
Такой ключ позволяет работать с API от имени группы, встречи или публичной страницы. Например, с его помощью Вы можете отвечать подписчикам сообщества на сообщения, поступившие в его адрес.
С ключом доступа сообщества можно вызывать те методы, которые имеют специальную пометку в общем списке.
Сервисный ключ нужен для запросов, которые не требуют авторизации пользователя или сообщества. Это такие методы, как secure.sendNotification для отправки уведомлений от приложения, или secure.addAppEvent для добавления информации о достижениях, а также открытые методы, например, users.get.
Получить сервисный ключ доступа можно в настройках Вашего приложения. Ключ не привязан к IP-адресу при использовании с открытыми методами, срок его действия не ограничен. Если ключ был скомпрометирован, Вы можете сгенерировать новый ключ, при этом старый будет аннулирован.
Сервисный ключ доступа идентифицирует Ваше приложение. Все запросы к API, совершённые с использованием Вашего ключа доступа, будут считаться совершёнными от имени Вашего приложения. Сервисный ключ доступа можно использовать только для запросов с серверной стороны приложения, его нельзя передавать и хранить на клиенте.
Для запросов к методам secure сервисный ключ привязан к IP-адресу, с которого был сгенерирован.
Документация о старой схеме получения сервисного ключа доступа доступна на этой странице: Client credentials flow.
Получение токена вк php
Используйте Authorization Code Flow для вызова методов API ВКонтакте с серверной части Вашего приложения (например, из PHP). Ключ доступа, полученный таким способом, не привязан к IP-адресу, но набор прав, которые может получить приложение, ограничен из соображений безопасности.
Необходимо перенаправить браузер пользователя по адресу
https://oauth.vk.com/authorize, передав следующие параметры:
Если пользователь не вошел на сайт, то в диалоговом окне ему будет предложено ввести свой логин и пароль.
После успешного входа на сайт пользователю будет предложено авторизовать приложение, разрешив доступ к необходимым настройкам, запрошенным при помощи параметра scope. Полный список настроек доступен в разделе прав доступа приложений.
Обратите внимание, что некоторые права доступа пользователя из списка (например, messages) могут быть запрошены только Standalone-приложением — что означает необходимость использования Implicit Flow для запроса таких прав.
Параметр code может быть использован в течение 1 часа для получения ключа доступа к API access_token с Вашего сервера.
В случае возникновения ошибки браузер пользователя будет перенаправлен с кодом и описанием ошибки:
Для получения access_token необходимо выполнить запрос с Вашего сервера на https://oauth.vk.com/access_token, передав следующие параметры:
client_id обязательный | Идентификатор Вашего приложения |
client_secret обязательный | Защищенный ключ Вашего приложения (указан в настройках приложения) |
redirect_uri обязательный | URL, который использовался при получении code на первом этапе авторизации. Должен быть аналогичен переданному при авторизации. |
code обязательный | Временный код, полученный после прохождения авторизации. |
Пример запроса:
В результате выполнения данного запроса Ваш сервер получит вновь созданный access_token. Вместе с access_token серверу возвращается время жизни ключа expires_in в секундах. expires_in содержит 0, если токен бессрочный (при использовании scope = offline). Процедуру авторизации приложения необходимо повторять в случае истечения срока действия access_token, смены пользователем своего логина или пароля или удаления приложения из настроек.
Если у пользователя указан email, а приложением были запрошены соответствующие права, сервер также вернет email пользователя.
В случае ошибки будут переданы параметры error и error_description.
Получение ключа доступа (access_token) для API «ВКонтакте»
«Access_token» – это некий уникальный ключ доступа к API социальной сети «ВКонтакте». Мы с вами уже затрагивали тему взаимодействия с этой социальной сетью, и там мы получали информацию из профиля пользователя без каких либо подтверждений.
Используя уникальный ключ, наши разработки получают больше прав, а именно – с помощью созданных приложений, при использовании токена, мы можем постить сообщения на стену «ВКонтакте», отправлять личные сообщения, загружать фотографии и делать много других интересных штук, о которых, я думаю, мы с удовольствием поговорим более подробно в отдельных статьях.
Но, прежде чем приступить к разработке своих приложений, необходимо получить этот уникальный ключ. Тому, как это правильно сделать, и будет посвящена эта статья.
1. Перейдите по этой ссылке. Если вы не авторизованы в «ВКонтакте» – авторизуйтесь, если уже авторизованы – то перед вами откроется форма для создания приложения:
Заполняем название приложения, при этом обязательно выбираем тип приложения «Standalone-приложение» и нажимаем «Подключить приложение».
После этого вам будет предложено подтвердить создание приложения. Подтверждаете, и переходите к следующему шагу.
2. На открывшейся странице приложения нажимаем «Настройки», затем копируем ID приложения:
и вставляем его в следующую ссылку:
Где «XXXXXXX» – ID вашего приложения.
3. Копируем полученную ссылку и открываем ее в браузере. Перед вами открывается окно с подтверждением доступа:
Просматриваете его, и если все так – нажимаете «Разрешить».
4. На следующей странице, где написано «Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту» копируете ссылку, она у вас будет вида:
и является вашим уникальным ключом, который вы копируете и используете в своих целях.
Обратите внимание, что данный ключ – это лишь пример, и он не является рабочим. Ваш же ключ не рекомендуем передавать третьим лицам во избежание взлома страницы и других неприятных ситуаций.
Авторизация на сайте с помощью ВК, простой и понятный способ на PHP!
В данной статье Вас ждет действительно рабочий,а самое главное понятный туториал, как сделать авторизацию с помощью ВК!
Я заинтересовался как сделать авторизацию, почитав официальную документацию понял, что ничего не понял. и так давайте приступим.
Если Вы заинтересованы в этом вопросе, как же все-таки сделать авторизацию используя ВК, то у Вас уже есть сайт, или как минимум вы обладаете базовыми знаниями. Для начала нам нужно создать приложение Вконтакте, самый простой шаг.
1. Переходим на сайт https://vk.com/apps?act=manage и создаем новое приложение:
2. Заполняем следующие данные:
Название: Любое, его видно только во время авторизации, например авторизовавшись на нашем сайте с помощью ВК, Вы видите это, без количества участников.Платформа: Выбираем «Сайт»
Адрес сайта: Ссылка на ваш сайт
Базовый домен: Ссылка на ваш сайт
Отлично, нажимаем подключить сайт.
3. Переходим в настройки приложения, копируем ID приложения и Защищенный ключ, сохраняем куда-нибудь и на этом работа на стороне ВК окончена, переходим к написанию скрипта.
4. Теперь самое интересное, нам нужно написать скрипт (обработчик), давайте создадим на нашем сервере в корне сайта файл auth.php и приступим к его редактированию. Хочу отметить, что на локальном сервере (OpenServer) авторизация работать не будет!
Открываем файл, я использую для этого PHPStorm и давайте создадим несколько переменных с пояснениями:
Тут все понятно, подставляем параметры из нашего приложения, ссылку указывать полностью, где лежит сам скрипт.
Далее формируем ссылку, которая будет ввести на сайт ВК с передаваемыми параметрами:
Ссылка сформирована, теперь нужно получить и обработать ответ от ВК, после того как пользователь перешел по ссылке:
После того как пользователь перешел по ссылке и подтвердил передачу данных, Вам на сервер в GET запросе вернется code, используя его мы запрашиваем у ВК токен пользователя, отправляем запрос в ВК с параметрами указанные в массиве
ВК возвращает нам токен пользователя, его можно сохранить в базу данных.
Теперь следующим запросом мы получаем данные о пользователе, используя его токен и обращаясь к API VK https://api.vk.com/method/users.get мы получаем json от VK, который мы можем распарсить. Давайте попробуем авторизоваться, заходим на нашу страницу и нажимаем авторизация:
Разрешаем и у нас на сайте появляются данные об аккаунте:
Авторизация работает. Далее можете сохранить ID в сессию и проверять авторизован пользователь или нет. Давайте доработаем код:
В самый конец добавляем:
А ссылку заменяем на:
Авторизация через ВК готова! Скачать исходник можно ниже