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

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/ как-то постит сообщения.
  • Вопрос задан
  • 4784 просмотра
Подписаться 8 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽