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

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

Добавлено: 29 июн 2010, 20:12
Doker
ну я сделал просто покупку внутреней валюты в моем приложении за голоса. ссыль ниже ( в подписи)

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

Добавлено: 29 июн 2010, 20:15
Евгений
Doker, а Вы php на кокой сервер загружаете?

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

Добавлено: 29 июн 2010, 20:18
Doker
я на платном.

а бесплатный могу посоветовать freehostia.com
регестрируй на тарифе chockolate
отличній хостинг, все есть!

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

Добавлено: 29 июн 2010, 20:31
Евгений
Doker, спасибо за совет!

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

Добавлено: 29 июн 2010, 21:30
Александр
Евгений писал(а):а обязательно с поддержкой CURL
Обязательно.

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

Добавлено: 22 июл 2010, 07:37
romanisk
Здравствуйте. Может у кого найдётся минутка и он подскажет мне как всё таки связать этот урок с методом secure.withdrawVotes ?? Что бы голос сразу падал на счёт приложения, а не на счёт пользователя в приложении.
Буду безумно благодарен за код на AS3 и PHP.

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

Добавлено: 22 июл 2010, 21:13
Александр
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

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

Добавлено: 23 авг 2010, 14:38
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?

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

Добавлено: 23 авг 2010, 21:11
Александр
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?
Сейчас никакой разницы.

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

Добавлено: 23 авг 2010, 21:20
FireStorm3000

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

Security.allowDomain("*");
а сюда я так понимаю лучше написать свой домен)