Форум программистов, компьютерный форум, киберфорум
Наши страницы

Java SE (J2SE)

Войти
Регистрация
Восстановить пароль
 
lixod96
1 / 1 / 0
Регистрация: 18.04.2014
Сообщений: 117
#1

Меседжер для VK - Java SE

27.10.2015, 19:46. Просмотров 192. Ответов 2
Метки нет (Все метки)

Надо написать меседжер для VK, вот что у меня:
Может ли мне почочь эта тема
Консольный мессенджер VK, подскажите как реализовать работу с API, пожалуйста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.awt.Desktop;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
 
 
public final class VkApi {
    
    private static final String API_VERSION = "5.21";
 
    private static final String AUTH_URL = "https://oauth.vk.com/authorize"
            + "?client_id={APP_ID}"
            + "&scope={PERMISSIONS}"
            + "&redirect_uri={REDIRECT_URI}"
            + "&display={DISPLAY}"
            + "&v={API_VERSION}"
            + "&response_type=token";
    
    private static final String API_REQUEST = "https://api.vk.com/method/{METHOD_NAME}"
            + "?{PARAMETERS}"
            + "&access_token={ACCESS_TOKEN}"
            + "&v=" + API_VERSION;
    
    public static VkApi with(String appId, String accessToken) throws IOException {
        return new VkApi(appId, accessToken);
    }
    
    private final String accessToken;
    
    private VkApi(String appId, String accessToken) throws IOException {
        this.accessToken = accessToken;
        if (accessToken == null || accessToken.isEmpty()) {
            auth(appId);
            throw new Error("Need access token");
        }
    }
    
    private void auth(String appId) throws IOException {
        String reqUrl = AUTH_URL
                .replace("{APP_ID}", appId)
                .replace("{PERMISSIONS}", "photos,messages")
                .replace("{REDIRECT_URI}", "https://oauth.vk.com/blank.html")
                .replace("{DISPLAY}", "page")
                .replace("{API_VERSION}", API_VERSION);
        try {
            Desktop.getDesktop().browse(new URL(reqUrl).toURI());
        } catch (URISyntaxException ex) {
            throw new IOException(ex);
        }
    }
    
    public String getDialogs() throws IOException {
        return invokeApi("messages.getDialogs", null);
    }
    
    public String getHistory(String userId, int offset, int count, boolean rev) throws IOException {
        return invokeApi("messages.getHistory", Params.create()
                .add("user_id", userId)
                .add("offset", String.valueOf(offset))
                .add("count", String.valueOf(count))
                .add("rev", rev ? "1" : "0"));
    }
    
    public String getAlbums(String userId) throws IOException {
        return invokeApi("photos.getAlbums", Params.create()
                .add("owner_id", userId)
                .add("photo_sizes", "1")
                .add("thumb_src", "1"));
    }
    
    private String invokeApi(String method, Params params) throws IOException {
        final String parameters = (params == null) ? "" : params.build();
        String reqUrl = API_REQUEST
                .replace("{METHOD_NAME}", method)
                .replace("{ACCESS_TOKEN}", accessToken)
                .replace("{PARAMETERS}&", parameters);
        return invokeApi(reqUrl);
    }
 
    private static String invokeApi(String requestUrl) throws IOException {
        final StringBuilder result = new StringBuilder();
        final URL url = new URL(requestUrl);
        try (InputStream is = url.openStream()) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            reader.lines().forEach(result::append);
        }
        return result.toString();
    }
    
    private static class Params {
        
        public static Params create() {
            return new Params();
        }
 
        private final HashMap<String, String> params;
        
        private Params() {
            params = new HashMap<>();
        }
        
        public Params add(String key, String value) {
            params.put(key, value);
            return this;
        }
        
        public String build() {
            if (params.isEmpty()) return "";
            final StringBuilder result = new StringBuilder();
            params.keySet().stream().forEach(key -> {
                result.append(key).append('=').append(params.get(key)).append('&');
            });
            return result.toString();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2015, 19:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Меседжер для VK (Java SE):

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...

Меседжер для Вк - Python
Здравствуйте. Подскажите, пожалуйста, как мне поместить переменную setFriends в friendsEdit :) # coding: utf-8 from PyQt4 import...


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

Или воспользуйтесь поиском по форуму:
2
turbanoff
Модератор
Эксперт Java
3973 / 3708 / 460
Регистрация: 18.05.2010
Сообщений: 9,286
Записей в блоге: 11
Завершенные тесты: 1
27.10.2015, 20:27 #2
lixod96, у вас что-то не работает?
0
lixod96
1 / 1 / 0
Регистрация: 18.04.2014
Сообщений: 117
28.10.2015, 17:01  [ТС] #3
не знаю как написать главный класс, хоть наброски какие то дайте мне, подскажите как с формой красиво реализовать
1 форма - вход в ВК по идеи
2 форма - показать личные смс и возможность переписываться с другими пользователями
0
Ответ Создать тему
Опции темы

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