Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 39

Не работает авторизация vk.com

28.12.2014, 22:08. Показов 1391. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел пример логина к вконтакте.
В этих строках выпадает NullPointerException:
Java
1
2
// Получили редирект на подтверждение требований приложения
        HeaderLocation = response.getFirstHeader("location").getValue();
Вот весь код:

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
 
public class VKapi {
    private String client_id = "12345678";
    private String scope = "messages";
    private String redirect_uri = "http://oauth.vk.com/blank.html";
    private String display = "popup";
    private String response_type = "token";
    private String access_token;
    private String email = "************";//тут должен быть прописан email
    private String pass = "**************";//тут должен быть прописан пароль
    public void setConnection() throws IOException, URISyntaxException {
        HttpClient httpClient = new DefaultHttpClient();
// Делаем первый запрос
        HttpPost post = new HttpPost("http://oauth.vk.com/authorize?" +
                "client_id="+client_id+
                "&scope="+scope+
                "&redirect_uri="+redirect_uri+
                "&display="+display+
                "&response_type="+response_type);
        HttpResponse response;
        response = httpClient.execute(post);
        post.abort();
//Получаем редирект
        String HeaderLocation = response.getFirstHeader("location").getValue();
        System.out.println(HeaderLocation);
        URI RedirectUri = new URI(HeaderLocation);
//Для запроса авторизации необходимо два параметра полученных в первом запросе
//ip_h и to_h
        String ip_h= RedirectUri.getQuery().split("&")[2].split("=")[1];
        String to_h=RedirectUri.getQuery().split("&")[4].split("=")[1];
// Делаем запрос авторизации
        post = new HttpPost("https://login.vk.com/?act=login&soft=1"+
                "&q=1"+
                "&ip_h="+ip_h+
                "&from_host=oauth.vk.com"+
                "&to="+to_h+
                "&expire=0"+
                "&email="+email+
                "&pass="+pass);
        response = httpClient.execute(post);
        post.abort();
// Получили редирект на подтверждение требований приложения
        HeaderLocation = response.getFirstHeader("location").getValue();
        post = new HttpPost(HeaderLocation);
// Проходим по нему
        response = httpClient.execute(post);
        post.abort();
// Теперь последний редирект на получение токена
        HeaderLocation = response.getFirstHeader("location").getValue();
// Проходим по нему
        post = new HttpPost(HeaderLocation);
        response = httpClient.execute(post);
        post.abort();
// Теперь в след редиректе необходимый токен
        HeaderLocation = response.getFirstHeader("location").getValue();
// Просто спарсим его сплитами
        access_token = HeaderLocation.split("#")[1].split("&")[0].split("=")[1];
    }
    public String getNewMessage() throws ClientProtocolException, IOException, NoSuchAlgorithmException, URISyntaxException {
        //Ранее описанный код получения списка сообщений
        String url = "https://api.vk.com/method/"+
                "messages.get"+
                "?out=0"+
                "&access_token="+access_token
                ;
        String line = "";
        try {
            URL url2 = new URL(url);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url2.openStream()));
            line = reader.readLine();
            reader.close();
 
        } catch (MalformedURLException e) {
            // ...
        } catch (IOException e) {
            // ...
        }
        return line;
    }
    public static void main(String[] args) throws IOException, URISyntaxException, AWTException, InterruptedException, NoSuchAlgorithmException {
        //Создадим раскрывающееся меню
        PopupMenu popup = new PopupMenu();
        //Создадим элемент меню
        MenuItem exitItem = new MenuItem("Exit");
        //Добавим для него обработчик
        exitItem.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        //Добавим пункт в меню
        popup.add(exitItem);
        SystemTray systemTray = SystemTray.getSystemTray();
        //получим картинку
        Image image = Toolkit.getDefaultToolkit().getImage("vk_icon.png");
        TrayIcon trayIcon = new TrayIcon(image,"VKNotifer",popup);
        trayIcon.setImageAutoSize(true);
        //добавим иконку в трей
        systemTray.add(trayIcon);
        trayIcon.displayMessage("VKNotifer", "Подключаемся к серверу",TrayIcon.MessageType.INFO);
        //Создадим экземпляр класса ВКапи
        VKapi vkAPI = new VKapi();
        //Получим токен
        vkAPI.setConnection();
        trayIcon.displayMessage("VKNotifer", "Есть подключение",TrayIcon.MessageType.INFO);
        //Бескоечный цикл
        String oldMessage = vkAPI.getNewMessage();
        String newMessage;
        int i = 0;
        for (;;){
            // Запросы на сервер можно подавать раз в 3 секунды
            Thread.sleep(3000); // ждем три секунды
            if (i == 15000){  // Если прошло 45 000 сек (Время взято с запасом, токен дается на день )
                vkAPI.setConnection(); // Обновляем токен
                Thread.sleep(3000);    // Запросы шлем только раз в три секунды
                i = 0;
            }
            //Здесь отработка
            newMessage = vkAPI.getNewMessage();
            if (!newMessage.equals(oldMessage)) {
                oldMessage = newMessage;
                trayIcon.displayMessage("VKNotifer", "Новое сообщение!",TrayIcon.MessageType.INFO);
//                Tools.playDrum(Drum.d53_Ride_Bell, 127,0);
            }
            i++;
        }
    }
 
}

Кто может подсказать в чем проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2014, 22:08
Ответы с готовыми решениями:

Не работает авторизация
Всем привет. Подскажите пожалуйста. Есть скрипт авторизации на сайте, решил из него убрать PDO , после того как убрал , теперь не работает...

Не работает авторизация
Не работает авторизация, никаких ошибок не показывает, True или False не показывает. Пожалуйста помогите найти ошибку. <?php ...

Не работает авторизация
Я запускаю проект и после того как должен нажать войти он должен перенести меня на страницу где админ должен ввести логин и пароль. И...

1
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
29.12.2014, 00:05
хедер который вы ищите не существует
так же судя по коду это не автологин а SSO где юзер сам должен вводить пароль и логин
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2014, 00:05
Помогаю со студенческими работами здесь

не работает авторизация
написал несложный(казалось бы) скрипт авторизация...авторизация идет через таблицу в которой три столбца id,login,passwd.СУБД...

Авторизация не работает
Всем привет, делаю авторизация на сайте lk.etherway.ru, но выходит ошибка в чём дело? procedure TForm1.Button1Click(Sender: TObject); ...

Не работает авторизация
Всем доброго времени суток! Почему в login1.php ругается на 31 строку? Там какой-то параметр пропущен? Но все равно скрипт даже с ошибкой...

Авторизация не работает
Регистрация проходит нормально и подтверждается аккаунт. Но с авторизацией трабл. Все время Ошибка что неверный пасс или логин. Не могу...

Не работает авторизация
Проблема в том что когда я авторизуюсь,а потом перехожу на страницу с товаром или обновляю страницу тогда сессия заканчивается т.е...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru