Задать вопрос

Почему wall.post перестает работать через какое-то время?

Получаю токен руками, таким образом:

1) Сначала
$sRequest = "https://api.vk.com/oauth/authorize?client_id=" . $vkontakteApplicationId . "&scope=offline,wall,groups&redirect_uri=https://vk.com&response_type=code";

- это можно только руками если ввести в браузер ссылку, в итоге отдается код в урле, оттуда руками копирую и далее получаю токен:

2)
$sRequest = "https://oauth.vk.com/access_token?client_id=" . $vkontakteApplicationId . "&client_secret=" . $vkontakteApplicationSecret . "&redirect_uri=https://vk.com&code=" . $code;


3) Копирую полученный токен и публикую пост на стене в группе вот так:

$sRequest = "https://api.vk.com/method/wall.post?owner_id=" . $ownerID . "&from_group=1&access_token=" . $accessToken ."&signed=" . $signed . "&v=5.80";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $sRequest);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "message= $message");
        $r = curl_exec($ch);
        curl_close($ch);
        var_dump($r);


Вчера все работало ок где-то в 16 по Москве, сегодня в 6:33 уже не работало, выдавал ошибку "User authorization failed: invalid session." - я так понимаю что токен, наверное, нужно получать руками постоянно? Или как? В чем именно проблема? Или в принципе можно автоматизировать получение токена по одному и тому же коду (руками необходимо получать только код, токен можно получить по этому коду уже автоматически - но здесь тоже возникает проблема с тем что если долго не обращаться, видимо, сессия тоже истекет, т.е. придется обращения делать по крону и записывать токены в бд..).

Заранее благодарен за ответы!
  • Вопрос задан
  • 338 просмотров
Подписаться 2 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Решения вопроса 1
@Ampleev Автор вопроса
В общем, написал в поддержку vk.com - исправили, теперь работает и исправлять ничего не нужно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Jeer
@Jeer
уверенный пользователь
Всё верно, у токена есть время жизни. Как только он оказался просроченный, необходимо заново его получать.
Если у вас получается руками получить, то почему не получается из php отправить ссылку и вытащить оттуда токен? Код я вам, к сожалению, не подскажу, я делал на другом языке. Должны быть примеры корректной работы, поищите
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
Крона Лабс Екатеринбург
от 200 000 ₽