PDA

Просмотр полной версии : [Вконтакте] Игровые очки в профиле в приложении


McDanem
24.02.2012, 15:01
Например я создам игровые очки в приложении.
Как мне сделать что бы они показывались в пользователя
Как сделать например что бы нажав на свое имя пользователь переходил в свой профиль и видел сколько у его игровых очков,и другую информацыю.
Или же напишите что нужно прочитать мне,что бы такое сделать.

ЗлОй ПрОграММер
24.02.2012, 17:42
В каждом приложении ВК у каждого установившего приложение создаётся свой набор переменных, как только вам нужно посмотреть игровые очки какого либо пользователя просто загружайте значения из его переменных
читайте про
getVariable – возвращает значение хранимой переменной.
getVariables – возвращает значения нескольких переменных.
putVariable – записывает значение переменной.

GBee
24.02.2012, 18:30
ЗлОй ПрОграММер
это устаревшие методы

ТС, а новые, я вам давал в другом вопросе ;о))

ЗлОй ПрОграММер
24.02.2012, 20:19
storage.set не записывает значения в переменные другим пользователям, к сожалению, во всяком случае у меня не получилось (отправить запрос через браузер и сохранить переменную другому пользователю приложения, почему то записалась как глобальная) вот пример как я делал (https://api.vkontakte.ru/method/storage.set?key=znach&value=1234&global=0uid=idДруга&access_token=...), а getVariable и putVariable устаревшие это верно и стираются периодически значения записанные с помощью них.
сегодня, попозже попробую через приложение это дело провернуть, а то мало ли напутал чё, о результатах отпишусь)
ну не стал ждать проверил, всё как я и говорил
1. Записываю значение в переменную myKey
private function storageSet(e: TimerEvent): void
{
//----------------------------------------------------------------------
/*
* storage.set сохраняет значение переменной, имя которой передано в параметре key.
* global по умолчанию = 0
*/
//----------------------------------------------------------------------
VK.api('storage.set', {key: "myKey", value: "1234", uid: "idДруга"},
storageSetTrue, storageSetFalse);
//----------------------------------------------------------------------
}
2. считываю переменную друга
private function storageGet(e: TimerEvent): void
{
//----------------------------------------------------------------------
/*
* storage.get возвращает значение переменной, имя которой передано в параметре key.
* global по умолчанию = 0
*/
//----------------------------------------------------------------------
VK.api('storage.get', {key: "myKey", uid: "idДруга"},
storageGetTrue, storageGetFalse);
//----------------------------------------------------------------------
}

3. Меняю idДруга на свой id и всё равно выдаётся 1234

GBee
24.02.2012, 21:14
Пользовательская переменная привязана к пользователю, и только он или сервер приложения может получить к ней доступ. Может быть создано не более 1000 переменных для каждого пользователя.

Глобальная переменная привязана к приложению, и работа с ней не зависит от пользователя. Для того чтобы задать глобальную переменную при работе с API от имени пользователя, нужно передать параметр global. Может быть создано не более 5000 глобальных переменных.

id пользователя, переменная которого устанавливается, в случае если данные запрашиваются серверным методом.

Так все описано четко в доках.

Хотите записать переменную другу, пишите как глобальную с уникальным именем "var<FriendID>"

ЗлОй ПрОграММер
24.02.2012, 21:53
так а если в приложении больше 5.000 пользователей ?) и если надо не одну а 5 переменных под каждого пользователя использовать ? в таком то случае и понадобиться putVariable

GBee
24.02.2012, 22:58
Тю вам 4 кб на переменную мало? В одну пихаете в JSONe например кучу всего, или в своем формате, поэкономней. 5000 конечно мало, но если нет своего сервака, то исхитриться можно. Брабен засунул же в 22 килобайта 8 галактик с тысячами планет. Это же самый сок.

Inet_PC
24.02.2012, 23:04
В этом случае нужно выделенный сервер, ибо контактовский будет не хило тормозить, мне кажется.

GBee
25.02.2012, 00:41
Тормозить будет скорее изза ограничения 3 запроса в секунду, так то севраков у них хватает.