Как получить Access token в vk API после серверной авторизации?

Пытаюсь разобраться в VK API. По документации делаю серверную авторизацию. Контакт переадресует пользователя обратно ко мне и GET параметром дает мне code.
Как оказалось, это еще не все и мне надо как-то получить access_token. Для этого делаю запрос:
$resp = file_get_contents('https://api.vk.com/oauth/token?client_id='.$api_id.'&code='.$code.'&client_secret='.$secret_key.'&redirect_uri='.$uri);
var_dump($resp);


Подставляю, разумеется
$api_id - выданный id приложения
$code - Присланный $_GET['code']
$secret_key - выданный ключик приложения
$uri - тот же url на который code пришло

Получаю bool(false)
Притом, если руками перехожу по сформированной ссылке, то вижу такую ошибку:
{"error":"invalid_grant","error_description":"Code is invalid or expired."}

Что я делаю не так? Прошу ногами не пинать - реально ответов и описаний ошибко не нашел.
  • Вопрос задан
  • 19293 просмотра
Решения вопроса 1
Iktash
@Iktash Автор вопроса
Всем спасибо. Попробовал от другого пользователя - первый раз все сработало, второй такая же ошибка. Видимо пока действуеи access_token старый новый нам не дадут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
qmax
@qmax
программер
Для серверной авторизации (без привлечения пользователя через браузер) нужно использовать другую процедуру:
vk.com/dev/auth_server
Ответ написан
@Klimenko
Fullstack-разработчик
error_reporting(E_ALL); ничего не выводит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы