У кого из друзей установлено приложение?

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
aaanet
Сообщения: 27
Зарегистрирован: 08 фев 2011, 02:50

У кого из друзей установлено приложение?

Сообщение aaanet »

Доброго времени суток!

Облазил форум и так и не нашел.
Как сделать чтобы в приложении выводился список друзей, у кого установлено это приложение.

Т.е. есть список друзей. Из них у некоторых установлено определенное приложение.
Как выводить список этих самых друзей, у кого установлено.
aaanet
Сообщения: 27
Зарегистрирован: 08 фев 2011, 02:50

Re: У кого из друзей установлено приложение?

Сообщение aaanet »

Спасибо.

А как лучше создавать базу MySQL. Т.е. название каждой таблицы ID пользователя? и внутри таблицы остальные параметры?
Или название параметра брать как название таблицы, к примеру, "score" и внутри уже параметры типа ID и его значение. И само score и его значение.

если кто не понял обьясню чуть по-другому.

К примеру в приложении несколько параметров, score, money, honey, water и разумеется ID человека.
Как лучше сделать с таблицами MySQL?
Создать таблицу? название которой будет это самое ID человека. А в ней уже параметры типа score, money, honey, water и их значения.
Или же создать несколько таблиц, названиями которых послужат параметры score, money, honey, water соответсвенно. И в каждой такой таблице будет ID и его значение. И значение самого параметра score или money или honey, или water


Спасибо.
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: У кого из друзей установлено приложение?

Сообщение Nick Lisogor »

Не сильно понял то, что вы имели в виду. Думаю, лучше создать одну таблицу такого типа:

id_пользователя | score | money | honey | water

Пример её структуры:

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

CREATE TABLE IF NOT EXISTS `users` (  `id` int auto_increment,  `user_id` int default NULL,  `score` int default 0,  `money` int default 0,  `honey` int default 0,  `water` int default 0,  PRIMARY KEY  (`id`),  UNIQUE KEY `uid` (`user_id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
Поясняю: поле id нужно для различных запросов, использующих группировку(почитай о PRIMARY KEY), user_id - это id пользователя, остальные же столбцы указаны соответственно тем, которые назвали вы, при добавлении пользователя в БД id будет заполнятся автоматически, user_id нужно будет указать, остальные параметры можно как указывать, так и не указывать(по умолчанию равны 0).

Советую почитать документацию так, как вы не полностью понимаете, что именно вам надо.
aaanet
Сообщения: 27
Зарегистрирован: 08 фев 2011, 02:50

Re: У кого из друзей установлено приложение?

Сообщение aaanet »

Спасибо. Я получил ответ.

Т.е.
если будет несколько человек в базе получится:
ID | score | money | honey | water
ID2 | score2 | money2 | honey2 | water2
ID3 | score3 | money3 | honey3 | water3
ID4 | score4 | money4 | honey4 | water4

А как тогда обратится, к примеру, к honey3?
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: У кого из друзей установлено приложение?

Сообщение Nick Lisogor »

Я же сказал, читайте документацию...

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

SELECT `honey` FROM `users` WHERE `user_id`='ID3'; -- Выбираем значение столбца honey там, где id_пользователя = ID3(вернет honey3)
aaanet
Сообщения: 27
Зарегистрирован: 08 фев 2011, 02:50

Re: У кого из друзей установлено приложение?

Сообщение aaanet »

Спасибо. Почитал. С базами и php разобрался. Думаю больше вопросов не возникнет по этому поводу.

Но вот другая проблема, которую не знаю как обойти.
Безопасность. Тестирую всё взаимодействие с сервером. Включил charles и ужаснулся. Все мои связи с сервером можно перехватить и изменить.
Самый оптимальный выход - не передавать в php сами данные, а передавать определенную функцию, чтобы вся арифметика проходила в самом php.

Но...всё равно без каких либо данных никак, например, тот же ID.
Любой может перехватить и исправить его на ID другого человека, который есть в базе.
Как обезопасить взаимодействие с сервером?
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: У кого из друзей установлено приложение?

Сообщение bodnar »

проверяйте на валидность auth_key
все же уже какая никакая безопасность
aaanet
Сообщения: 27
Зарегистрирован: 08 фев 2011, 02:50

Re: У кого из друзей установлено приложение?

Сообщение aaanet »

На сколько я понимаю, это примерно таким кодом.
Во флеше:

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

 ............//передаем данные php скриптуvar vars:URLVariables = new URLVariables();vars['auth_key']=params['auth_key'];vars['viewer_id']=params['viewer_id'];............. 
а в php

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

 .............// принимаем данные с флеша$auth_key  = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$uid = $viewer_id; // Рассчитываем ключ авторизации$real_key = md5($app_id."_".$viewer_id."_".$api_secret); if ($auth_key == $real_key){    blablabla...} 
но...разве нельзя перехватить этот auth_key.
Или auth_key под MD5? и также зашифрован как и real_key?
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: У кого из друзей установлено приложение?

Сообщение Nick Lisogor »

bodnar писал(а):проверяйте на валидность auth_key
все же уже какая никакая безопасность
bodnar, валидность auth_key - это больная тема, ведь можно n таких запросов отправить потом)
Ответить