Баланс пользователя в приложении

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)

Баланс пользователя в приложении

Сообщение Alexander » 08 ноя 2009, 20:18

Подскажите, как сделать чтобы например в текстовом поле 'user_balance' отображался баланс приложения?

Покопошив руководство по api нашёл следующее

Пример запроса:

http://api.vkontakte.ru/api.php?api_id= ... ca256fa538



В данном случае API получает запрос secure.getAppBalance ("вернуть баланс голосов текущего приложения").

Пример ответа:

<?xml version="1.0" encoding="utf-8"?>
<response>
<balance>5000</balance>
</response>


Ответ по умолчанию приходит в формате XML в кодировке UTF-8.

Если же приходит сообщение об ошибке, то ответ мог бы выглядеть, например, следующим образом:

<error>
<error_code>4</error_code>
<error_msg>Incorrect signature</error_msg>
<request_params list="true">
<param><key>api_id</key><value>4</value></param>
<param><key>v</key><value>2.0</value></param>
<param><key>method</key><value>secure.getAppBalance</value></param>
<param><key>timestamp</key><value>1238714241</value></param>
<param><key>random</key><value>83962759</value></param>
<param><key>sig</key><value>7598d64720bb39544679f2ca256fa538</value></param>
</request_params>
</error>


Получилось что то вроде этого

<?
$api_id 
= '1679168'; // id приложения
$timestamp = time();
$v='2.0';
$random = rand(0,546546);
$secret = 'dsfdsfsdfdsfsfsdfsd'; // секрет
$method = 'secure.getAppBalance';

$sig = md5('api_id='.$api_id."method=".$method.'random='.$random.'timestamp='.$timestamp.'v='.$v.$secret);
echo $otvet=сonnect("http://api.vkontakte.ru/api.php?api_id=".$api_id."&v=".$v."&method=".$method."&timestamp=".$timestamp."&random=".$random."&sig=".$sig);
?>


Возможно код написан не правильно.

Подскажите кто нибудь как это реализовать... :o
Последний раз редактировалось Alexander 08 ноя 2009, 20:39, всего редактировалось 1 раз.
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Баланс пользователя в приложении

Сообщение Александр » 08 ноя 2009, 20:23

Ну и работает? Я не проверял твой код.

Сам делаю с использованием VkApi.class.php

<?
require('VkApi.class.php');

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

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);
}

$api = new VkApiNode($app_id, $api_secret);
$query = $api->getBalance();
$user_balance = get_url($query);
echo $user_balance;

?>


И определись что ты хочешь узнать баланс пользователя (getBalance) или баланс приложения (getAppBalance)? Название темы и содержимое различается.

Чтобы отобразить в текстовом поле, надо обратиться через приложение к этому скрипту и вывести результат.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 08 ноя 2009, 20:33

Я хочу узнать баланс пользователя в приложении.
Тьфу блин, это я искал не то
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 08 ноя 2009, 20:35

Александр писал(а):Чтобы отобразить в текстовом поле, надо обратиться через приложение к этому скрипту и вывести результат.

Меня собственно и интересует как обратится к скрипту и вывести результат.
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Re: Баланс пользователя в приложении

Сообщение Александр » 08 ноя 2009, 20:58

var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest("ссылка на скрипт");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void {
   var loader:URLLoader=event.target as URLLoader;
   // как вывести результат зависит от того как ты обработаешь его в php скрипте, если оставишь только значение то так
   result_tf.text=loader.data;
   // а если получишь xml, то придется вытащить значение
}
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 08 ноя 2009, 21:10

Спасибо.
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 08 ноя 2009, 21:17

Если заходить на сервер в ручную вылазит это


Warning: Missing argument 1 for VkApiNode::getBalance(), called in /home/alexlab/public_html/balance.php on line 18 and defined in /home/alexlab/public_html/VkApi.class.php on line 117
113 Invalid user id api_id 1679168 format XML method secure.getBalance random 1751939922 timestamp 1257704148 uid v 2.0 sig сдесь сиг

Это нормално?
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Re: Баланс пользователя в приложении

Сообщение Александр » 09 ноя 2009, 13:40

Alexander, а ошибку то прочитал? Документацию по использованию метода getBalance посмотрел?
Когда я подумал что тебе нужно узнать баланс пользователя, а не приложения, то я исправил getAppBalance на getBalance. А в getBalance нужно указать id пользователя getBalance(id). Ну а id нужно передать из приложения, например post запросом и получить в php скрипте. Аналогично этому topic10-20.html#p79
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 09 ноя 2009, 17:45

/ну значит я понял правильно..
Просто днски никак не перетащу, всё жду и жду...
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

Re: Баланс пользователя в приложении

Сообщение Alexander » 10 ноя 2009, 11:52

Вот это ответ сервера приложению :

<br />
<b>Warning</b>: Missing argument 1 for VkApiNode::getBalance(), called in /home/alexlab/public_html/balance.php on line 18 and defined in <b>/home/alexlab/public_html/VkApi.class.php</b> on line <b>117</b><br />
<?xml version="1.0" encoding="utf-8"?>
<error>
<error_code>2</error_code>
<error_msg>Application is disabled. Enable your application or use test mode</error_msg>
<request_params list="true">
<param>
<key>api_id</key>
<value>1679168</value>
</param>
<param>
<key>format</key>
<value>XML</value>
</param>
<param>
<key>method</key>
<value>secure.getBalance</value>
</param>
<param>
<key>random</key>
<value>2139077985</value>
</param>
<param>
<key>timestamp</key>
<value>1257842991</value>
</param>
<param>
<key>uid</key>
<value/>
</param>
<param>
<key>v</key>
<value>2.0</value>
</param>
<param>
<key>sig</key>
<value>сдесь сиг</value>
</param>
</request_params>
</error>

Почему???
И ещё, как из таково ответа сграбить только то что находится между <balance></balance>
Alexander
FL Team
FL Team
 
Автор темы
Сообщения: 186
Зарегистрирован: 15 окт 2009, 20:08
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.

След.

Вернуться в Создание Flash-приложений ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron