Списание голосов.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Списание голосов.

Сообщение Александр »

psix55
Куда вынуть? Смотри код на первой странице.
curl_exec($ch) - это ответ на запрос.
В коде на 5ой странице, я записываю в $result полученный ответ, преобразовав его в SimpleXMLElement, для последующей обработки.
kobl
Сообщения: 6
Зарегистрирован: 22 фев 2010, 21:35

Re: Списание голосов.

Сообщение kobl »

Александр, я попытался проверить Ваше приложение по списанию голоса, но почему-то ничего не вышло... те файлы которые нужно было закинуть на сервак закинул, всё что нужно поменял в withdrawvotes.php, закинул приложение в контакт... но голос не списывается... :( можете подсказать что я сделал не так?
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Списание голосов.

Сообщение VIP »

пробовал голоса не списывает Александр напишите пожалуйсто весь код проверки есть ли у пользователя голоса и как это реализовать в приложении - буду благодарен!!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Списание голосов.

Сообщение Александр »

kobl
Не знаю где у тебя ошибка. Проверь поддержку cURL на хостинге http://flapps.ru/forum/topic144.html
Попробуй проанализировать сниффером взаимодействие твоего приложения с сервером.

VIP
Где у тебя возникает проблема? Напиши код, который написал и протестировал ты.
На прошлой странице я написал часть кода. Додумай логически и протестируй. Мне сейчас это не надо и у меня нет на это времени.
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Списание голосов.

Сообщение VIP »

Код: Выделить всё

<?


require('VkApi.class.php');


$app_id = 'id; 			// id приложения
$api_secret = 'yxaxaxaxaxaxaxa';	// Защищенный ключ с вкладки "Платежи"

$auth_key  = $_POST['auth_key'];  // auth_key из FlashVars приложения
$viewer_id = $_POST['viewer_id']; // id просматривающего приложение


// Рассчитывается ключ авторизации
$real_key = md5($app_id."_".$viewer_id."_".$api_secret);

if ($auth_key == $real_key){
// Создание запроса
$api = new VkApiNode($app_id, $api_secret);
$uid = $viewer_id;		// id просматривающего приложение
$votes = 100; 			// Количество голосов (1 голос = 100)
$query = $api->withdrawVotes($uid, $votes);	



// Выполнение запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $query);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_exec($ch);
$votes = new SimpleXMLElement(curl_exec($ch));
curl_close($ch);
}



if ($votes->transferred>0) {
   echo 'Голос списан';
}
else {
   switch($votes->error_code)
   {
    case 502:
      echo 'На вашем балансе недостаточно голосов!';
   break;
    default:       
      echo 'Произошла ошибка!';
   } 
}


?>
Что тут не так? И что нужно было сделать во флеш чтоб оно принимало текст??? Буду благодарен

во флеш пишу

Код: Выделить всё

btn.addEventListener(MouseEvent.CLICK,btnClick);

function btnClick(e:MouseEvent):void {
	var params:Object=LoaderInfo(root.loaderInfo).parameters;
	var loader:URLLoader = new URLLoader();
	var request:URLRequest=new URLRequest("http://адрес скрипта.php"); // адрес вашего скрипта
	request.method=URLRequestMethod.POST;

	var vars:URLVariables = new URLVariables();
	vars['auth_key']=wrapper.application.parameters.auth_key;   // auth_key из FlashVars
	vars['viewer_id']=wrapper.application.parameters.viewer_id; // ID просматривающего приложение

	request.data=vars;
	loader.addEventListener(Event.COMPLETE,onComplete);
	loader.load(request);
}
//Вывожу всё в текстовое поле
function onComplete(event:Event):void {
   result_tf.text=loader.data;
}
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Списание голосов.

Сообщение VIP »

Так вот когда я на прямую обращаюсь к скрипту то пишет "Произошла ошибка!" но во флеш даже это не выводит!!!!
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Списание голосов.

Сообщение VIP »

:roll:
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Списание голосов.

Сообщение psix55 »

:D
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Списание голосов.

Сообщение Александр »

VIP
Почему ты делаешь это

Код: Выделить всё

if ($votes->transferred>0) {
   echo 'Голос списан';
}
else {
   switch($votes->error_code)
   {
    case 502:
      echo 'На вашем балансе недостаточно голосов!';
   break;
    default:       
      echo 'Произошла ошибка!';
   } 
}
за пределами этого?

Код: Выделить всё

if ($auth_key == $real_key)
crossdomain.xml на сервере есть?

Используешь контейнер?
Если нет, то тебе надо получать auth_key и viewer_id по другому.

Скачать какой-нибудь сниффер и проанализируй как взаимодействует твое приложение с сервером.
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Списание голосов.

Сообщение VIP »

Именно использую контейнер всё описано и он работает! То ест никаких возражений с боку флеш нет?
Ответить