Получаю токен руками, таким образом:
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." - я так понимаю что токен, наверное, нужно получать руками постоянно? Или как? В чем именно проблема? Или в принципе можно автоматизировать получение токена по одному и тому же коду (руками необходимо получать только код, токен можно получить по этому коду уже автоматически - но здесь тоже возникает проблема с тем что если долго не обращаться, видимо, сессия тоже истекет, т.е. придется обращения делать по крону и записывать токены в бд..).
Заранее благодарен за ответы!