Страница 6 из 8

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

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

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

Добавлено: 22 фев 2010, 21:40
kobl
Александр, я попытался проверить Ваше приложение по списанию голоса, но почему-то ничего не вышло... те файлы которые нужно было закинуть на сервак закинул, всё что нужно поменял в withdrawvotes.php, закинул приложение в контакт... но голос не списывается... :( можете подсказать что я сделал не так?

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

Добавлено: 23 фев 2010, 18:57
VIP
пробовал голоса не списывает Александр напишите пожалуйсто весь код проверки есть ли у пользователя голоса и как это реализовать в приложении - буду благодарен!!

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

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

VIP
Где у тебя возникает проблема? Напиши код, который написал и протестировал ты.
На прошлой странице я написал часть кода. Додумай логически и протестируй. Мне сейчас это не надо и у меня нет на это времени.

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

Добавлено: 24 фев 2010, 17:22
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;
}

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

Добавлено: 24 фев 2010, 23:14
VIP
Так вот когда я на прямую обращаюсь к скрипту то пишет "Произошла ошибка!" но во флеш даже это не выводит!!!!

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

Добавлено: 25 фев 2010, 19:23
VIP
:roll:

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

Добавлено: 25 фев 2010, 20:25
psix55
:D

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

Добавлено: 25 фев 2010, 21:56
Александр
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 по другому.

Скачать какой-нибудь сниффер и проанализируй как взаимодействует твое приложение с сервером.

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

Добавлено: 25 фев 2010, 22:07
VIP
Именно использую контейнер всё описано и он работает! То ест никаких возражений с боку флеш нет?