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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
ManHunter
13 / 13 / 4
Регистрация: 16.05.2011
Сообщений: 150
Записей в блоге: 2
28.03.2013, 01:41     Отслеживание сообщений (Vkontakte SDK) #1
Всем привет!
Пишу приложение мессенджер вконтакте. Сейчас хочу реализовать прием сообщений, но не знаю каким образом это сделать.
Может есть люди имеющие опыт с работай с данной 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
Сообщений: 150
Записей в блоге: 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
Сообщений: 150
Записей в блоге: 2
28.03.2013, 19:05  [ТС]     Отслеживание сообщений (Vkontakte SDK) #5
Ладно, с этим я вроде бы решил вопрос)
Теперь столкнулся с проблемой расшифровать дату сообщения (когда оно было написано).
К примеру, так получаю дату:
Java
1
message1.get(i).date
получаю информацию в виде большого числа, к примеру: 1364404632. Погуглив я узнал, что это NSDate который как я понял является типом в Objectiv C.
ВОПРОС: как преобразовать полученные данные в дату-время??? В интернете нужной информации не нашёл...
V0v1k
1157 / 981 / 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
Сообщений: 150
Записей в блоге: 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
Сообщений: 150
Записей в блоге: 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:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru