Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 152
Записей в блоге: 2
#1

Отслеживание сообщений (Vkontakte SDK) - Android

28.03.2013, 01:41. Просмотров 3358. Ответов 10
Метки нет (Все метки)

Всем привет!
Пишу приложение мессенджер вконтакте. Сейчас хочу реализовать прием сообщений, но не знаю каким образом это сделать.
Может есть люди имеющие опыт с работай с данной vk SDK: https://github.com/thest1/Android-VKontakte-SDK ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 01:41     Отслеживание сообщений (Vkontakte SDK)
Посмотрите здесь:

Android Android + Vkontakte API problem
Android NDK и SDK
Android SDK or NDK
Android Загрузка изображения на стену vkontakte Android
Android Проблемы с SDK
SDK на SSD Android
Приложение по функционалу как VKontakte Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бородач
Заблокирован
28.03.2013, 02:31     Отслеживание сообщений (Vkontakte SDK) #2
Не пользуюсь, но стало любопытно посмотреть
Вроде ничего сложного там нет, на странице: http://vk.com/developers.php?s=0&id=-1_11226273 нужные апи
Открываем https://github.com/thest1/Android-VK...e/api/Api.java
Ищем на странице например слово: messages.send получаем отправку сообщений:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//http://vkontakte.ru/developers.php?o=-1&p=messages.send
    public String sendMessage(Long uid, long chat_id, String message, String title, String type, Collection<String> attachments, ArrayList<Long> forward_messages, String lat, String lon, String captcha_key, String captcha_sid) throws MalformedURLException, IOException, JSONException, KException{
        Params params = new Params("messages.send");
        if(chat_id<=0)
            params.put("uid", uid);
        else
            params.put("chat_id", chat_id);
        params.put("message", message);
        params.put("title", title);
        params.put("type", type);
        params.put("attachment", arrayToString(attachments));
        params.put("forward_messages", arrayToString(forward_messages));
        params.put("lat", lat);
        params.put("long", lon);
        addCaptchaParams(captcha_key, captcha_sid, params);
        JSONObject root = sendRequest(params, true);
        Object message_id = root.opt("response");
        if (message_id != null)
            return String.valueOf(message_id);
        return null;
    }
ну и таким образом можно найти любую апи
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 152
Записей в блоге: 2
28.03.2013, 08:28  [ТС]     Отслеживание сообщений (Vkontakte SDK) #3
Бородач, Да, это я знаю, но проблема в том, как например правильно реализовать ожидание сообщения ?
К примеру, вот таким образом я могу найти непрочитанные сообщения (входящие):
Java
1
2
3
4
5
6
7
8
9
message1 = api.getMessagesHistory(uid, chat_id, 0, null, 10);//читаю первые 10 сообщений
     
for(int i = 0; i <= message1.size(); i++)
{
  if(message1.get(1).read_state)//если сообщение не прочитано
{
//добаляем в новые
}
}
Но грамотно ли будет каждые, допустим ... 10 сек. делать запрос api.getMessagesHistory и проверять есть ли не прочитанные?

Аа, только что вспомнил, что в api.getMessagesHistory мы читаем сообщения конкретного пользователя, а не все последние сообщения, так что тут тоже возникает проблема.
Бородач
Заблокирован
28.03.2013, 16:01     Отслеживание сообщений (Vkontakte SDK) #4
Вот тут наверно ответ: http://vk.com/developers.php?oid=-1&...B5%D1%80%D1%83
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 152
Записей в блоге: 2
28.03.2013, 19:05  [ТС]     Отслеживание сообщений (Vkontakte SDK) #5
Ладно, с этим я вроде бы решил вопрос)
Теперь столкнулся с проблемой расшифровать дату сообщения (когда оно было написано).
К примеру, так получаю дату:
Java
1
message1.get(i).date
получаю информацию в виде большого числа, к примеру: 1364404632. Погуглив я узнал, что это NSDate который как я понял является типом в Objectiv C.
ВОПРОС: как преобразовать полученные данные в дату-время??? В интернете нужной информации не нашёл...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.03.2013, 20:46     Отслеживание сообщений (Vkontakte SDK) #6
a new Date(number); не подходит?
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 152
Записей в блоге: 2
28.03.2013, 22:00  [ТС]     Отслеживание сообщений (Vkontakte SDK) #7
V0v1k, спасибо, помогло, расшифровало дату и время, но теперь другая проблема, выдаёт не правильную дату и время: 1970-01-16.

Добавлено через 32 минуты
Всё разобрался, всем спасибо.
Пишу на всякий случай если кто-нибудь столкнется с такой же проблемой: 1970-01-00 - это unix time http://en.wikipedia.org/wiki/Unix_time способы его конвертирования на различных ЯП можно посмотреть здесь
kisk55
Сообщений: n/a
08.12.2013, 10:26     Отслеживание сообщений (Vkontakte SDK) #8
Доброго времени, не могли бы вы показать свой вариант решения получения новых сообщений здесь либо в личку?
Rev0lt
0 / 0 / 0
Регистрация: 26.12.2014
Сообщений: 3
26.12.2014, 20:36     Отслеживание сообщений (Vkontakte SDK) #9
Извините, чуть напутал с темой. Уже совсем голова не соображает.
Armagedo
26.12.2014, 20:38
  #10

Не по теме:

Некроманты в городе...бдите...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2014, 20:49     Отслеживание сообщений (Vkontakte SDK)
Еще ссылки по теме:

Работа с vkontakte API Android
Vk sdk Android
Android Eclipse SDK
Android sdk Android
Обновление sdk Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 152
Записей в блоге: 2
26.12.2014, 20:49  [ТС]     Отслеживание сообщений (Vkontakte SDK) #11
Rev0lt, Пришлось с гугл драйва качать исходники. Точно сказать не могу т.к. больше года прошло, но вот кусок кода который я нашёл:
Java
1
2
3
4
5
6
7
message1 = MainActivity.api.getMessagesHistory(uid, chat_id, 0, null, 11);
String date;
for(int i = message1.size()-1; i >= 0; i--)
{
    date = new java.text.SimpleDateFormat("HH:mm").format(new java.util.Date(message1.get(i).date*1000));
    messageItem.add(new ItemMessage(message1.get(i).body, date, message1.get(i).is_out));
}
Yandex
Объявления
26.12.2014, 20:49     Отслеживание сообщений (Vkontakte SDK)
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru