Кнопка "Поблагодарить за приложение"

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Кнопка "Поблагодарить за приложение"

Сообщение Doker »

ну я сделал просто покупку внутреней валюты в моем приложении за голоса. ссыль ниже ( в подписи)
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Кнопка "Поблагодарить за приложение"

Сообщение Евгений »

Doker, а Вы php на кокой сервер загружаете?
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Кнопка "Поблагодарить за приложение"

Сообщение Doker »

я на платном.

а бесплатный могу посоветовать freehostia.com
регестрируй на тарифе chockolate
отличній хостинг, все есть!
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Кнопка "Поблагодарить за приложение"

Сообщение Евгений »

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

Re: Кнопка "Поблагодарить за приложение"

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

Евгений писал(а):а обязательно с поддержкой CURL
Обязательно.
romanisk
Сообщения: 5
Зарегистрирован: 22 июл 2010, 07:34

Re: Кнопка "Поблагодарить за приложение"

Сообщение romanisk »

Здравствуйте. Может у кого найдётся минутка и он подскажет мне как всё таки связать этот урок с методом secure.withdrawVotes ?? Что бы голос сразу падал на счёт приложения, а не на счёт пользователя в приложении.
Буду безумно благодарен за код на AS3 и PHP.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Кнопка "Поблагодарить за приложение"

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

romanisk
Посмотри внимательнее код php скрипта. Видишь там withdrawVotes ? Вот в этом уроке этот метод и используется.

Если ты путаешь secure.withdrawVotes и wrapper.external.showPaymentBox(1) - то прочти это http://flapps.ru/forum/topic437-10.html#p3999 Ну и тему с самого начала.

И вот это тоже прочти, если будут вопросы "почему же не работает?"
http://flapps.ru/forum/topic437-30.html#p5549
DarkAngel-zero
Сообщения: 3
Зарегистрирован: 23 авг 2010, 14:09

Re: Кнопка "Поблагодарить за приложение"

Сообщение DarkAngel-zero »

Может немного не в тему, но проблема с теми же скриптами...
Пытаюсь получить баланс приложения.
Код (в основном взят с этого форума):
на хостинге, getappbalance.php

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

<?require('VkApi.class.php'); $app_id = 'id_приложения';            // id приложения$api_secret = 'букофки';   // Защищенный ключ с вкладки "Платежи" // Выполнение запросаfunction get_url($query) {    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $query);    curl_setopt($ch, CURLOPT_HEADER, 0);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_TIMEOUT, 10);    return curl_exec($ch);    curl_close($ch);} $auth_key  = $_POST['auth_key'];  // auth_key из FlashVars приложения$viewer_id = $_POST['viewer_id']; // id просматривающего приложение$uid = $viewer_id; // id просматривающего приложение // Рассчитывается ключ авторизации$real_key = md5($app_id."_".$viewer_id."_".$api_secret); if ($auth_key == $real_key){// Создание запроса$api = new VkApiNode($app_id, $api_secret);$query = $api->getAppBalance();$app_balance = new SimpleXMLElement(get_url($query));echo "app balance is ".$app_balance."!";}?>
на кнопке в приложении:

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

function onClick(event:MouseEvent) {                        var loader:URLLoader = new URLLoader();            var request:URLRequest = new URLRequest("http://хостинг/getappbalance.php"); // адрес вашего скрипта            request.method = URLRequestMethod.POST;             var vars:URLVariables = new URLVariables();            vars['auth_key'] = MD5.encrypt('(id_приложения_мой_id_букофки'); //для локального тестирования            vars['viewer_id'] = мой_id; //initer.wrapper.application.parameters.viewer_id;             request.data = vars;            loader.addEventListener(Event.COMPLETE, onComplete);            loader.load(request);                        function onComplete(event:Event):void {                var loader:URLLoader = event.target as URLLoader;                trace(event.target.data);                if (loader != null) {                    initer.varOutput = new XML(loader.data);                }            }                    }
далее вывожу переменную initer.varOutput в текстовом поле.
И тут возникает ошибка следующего содержания:

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

<br /><b>Fatal error</b>:  Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /www/хостинг/getappbalance.php:35Stack trace:#0 /www/хостинг/getappbalance.php(35): SimpleXMLElement->__construct('')#1 {main}  thrown in <b>/www/хостинг/getappbalance.php</b> on line <b>35</b><br /> TypeError: Error #1088: Разметка в документе, следующим за корневым элементом, должна быть в правильном формате.    at Function/<anonymous>()    at flash.events::EventDispatcher/dispatchEventFunction()    at flash.events::EventDispatcher/dispatchEvent()    at flash.net::URLLoader/onComplete()
Я так понимаю, что ошибка возникает при попытке конвертировать результат выполнения запроса в XML на сервере. Если убрать "new SimpleXMLElement()" и выводить результат без обработки, то не возвращается вообще ничего. В чем может быть причина? Если даже контакту не понравилось обращение, он должен вернуть хотя бы ошибку, а она приходит в XML, и должна хоть как-то отобразиться.

Хостинг вагончик, curl есть.

И еще: это нормально, если результат приходит через пару секунд после нажатия кнопки? И если, скажем, приложение отправляет запросы с версией апи 3.0, а сервер - с версией 2.0?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Кнопка "Поблагодарить за приложение"

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

DarkAngel-zero

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

$api = new VkApiNode($app_id, $api_secret);$query = $api->getAppBalance();$app_balance = new SimpleXMLElement(get_url($query));echo "app balance is ".$app_balance->balance."!";
DarkAngel-zero писал(а):Хостинг вагончик, curl есть.
и реклама, автоматически встраиваемая в скрипты, тоже есть? Это может быть проблемой. Проверь что приходит приложению от сервера с помощью Charles.
DarkAngel-zero писал(а):И еще: это нормально, если результат приходит через пару секунд после нажатия кнопки?
Нормально, если сервер не быстрый.
DarkAngel-zero писал(а):И если, скажем, приложение отправляет запросы с версией апи 3.0, а сервер - с версией 2.0?
Сейчас никакой разницы.
Аватара пользователя
FireStorm3000
Сообщения: 80
Зарегистрирован: 03 янв 2010, 18:17

Re: Кнопка "Поблагодарить за приложение"

Сообщение FireStorm3000 »

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

Security.allowDomain("*");
а сюда я так понимаю лучше написать свой домен)
Последний раз редактировалось FireStorm3000 23 авг 2010, 21:44, всего редактировалось 1 раз.
Ответить