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

Vk.api, wall.post на стороннем сайте

Есть сайт, хочется чтобы с него постились сообщения на стену групп от пользователей.
Создал standalone-приложение. Получил токен, но когда вызываю wall.post то выдается ошибка:
"Permission to perform this action is denied for non-standalone applications: you should request token using blank.html page"
Если я укажу в редиректе https://oauth.vk.com/blank.html, то приложение не сможет спарсить токен.
Как обойти эту проблему? Например, http://buzzlike.ru/ как-то постит сообщения.
  • Вопрос задан
  • 4780 просмотров
Подписаться 8 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
  • Академия Eduson
    Frontend-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия 1C-разработчик
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Если я укажу в редиректе https://oauth.vk.com/blank.html, то приложение не сможет спарсить токен.

Почему это не спарсите?
Вот работающий пример на php
$cl = new HTTP_Client;
$cl->setDefaultHeader("Accept-Encoding", "identity");
$cl->get("https://oauth.vk.com/authorize?client_id=xxx&scope=video,groups,photos,wall,offline&display=wap&redirect_uri=https://oauth.vk.com/blank.html&response_type=token"); 

$resp = $cl->currentResponse();

$dom = str_get_dom($resp['body']);
$postData = array();
foreach ($dom->find("input") as $input)
{
	if ($input->name)
	{
		$postData[$input->name] = $input->value;
	}
}
$postData['email'] = $urow['login'];
$postData['pass'] = $urow['pass'];
$postData['expire'] = '0';

$cl->post($dom->find("form", 0)->action, $postData);
$resp = $cl->currentResponse();
if (strstr($resp['url'], "oauth.vk.com/blank.htm"))
{
	$oauth_success_url = $resp['url'];
}
else
{
	$dom->__destruct();
	unset($dom);
	$dom = str_get_dom($resp['body']);
	$cl->get($dom->find("form", 0)->action);
	$resp = $cl->currentResponse();
	$oauth_success_url = $resp['url'];
}
if (!preg_match("#access_token=([0-9a-f]+)&#", $oauth_success_url, $m))
{
	printf("Не удалось авторизоваться vk\n");
	exit(1);
}
$access_token = $m[1];
echo $access_token."\r\n";
Ответ написан
Напишите в администрацию или кому-нибудь из разработчиков, выдаст разрешение, если хорошо обоснуете необходимость, иначе никак.
p.s. мы такой вопрос решали лично через Влада Цыплухина
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Воронеж
от 75 000 ₽
Hard Bootstrapping LLC. Санкт-Петербург
от 250 000 до 500 000 ₽
FinTax Москва
от 3 000 $