Имя: Пароль:
1C
1С v8
1C Предприятие и авторизация Вконтакте
,
0 bambazamba
 
06.08.13
21:37
Привет, коллеги.
Никогда не работал с объектами HTTPЗапрос, HTTPСоединение.

Есть задача:
1. Авторизоваться в ВК
2. Перейти на определенную страницу
3. Сохранить страницу локально.
... дальше распарсить, но это я смогу.

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

Спасибо!
1 ДенисЧ
 
06.08.13
21:50
зачем в 1с вконтакт? Документы лайкать?
На инфостарте поищи, там было
2 IamAlexy
 
06.08.13
21:52
(1) парсер вконтактника на 1С пишет.. будет оттуда дергать видео и аудио :)

ну и молоденьких тёлочек с сиськами...
3 bambazamba
 
06.08.13
22:00
(2) Если решить такую задачу - решится и моя :)
4 Сниф
 
06.08.13
22:06
<button id="quick_login_button">

- волшебная кнопка, ее надо нажать программно
5 bambazamba
 
06.08.13
22:18
Итак, понятно.
Если в адрес браузера вписать:

http://login.vk.com/login?act=login&email=электропочта&pass=пароль

То происходит авторизация и переход на домашнюю страницу.

Теперь если про 1С:

    Сервер = "login.vk.com";
    Соединение = Новый HTTPСоединение(Сервер);
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("act","login");
    Заголовки.Вставить("email","электропочта");
    Заголовки.Вставить("pass","пароль");

    ФайлРезультата = "C:\Users\***\Downloads\1.html";
    
    Соединение = Новый HTTPСоединение(Сервер);
    
    Запрос = Новый HTTPЗапрос("login",Заголовки);
    
    Соединение.ОтправитьДляОбработки(Запрос, ФайлРезультата);


Файл создается, но пустой. Ошибок нет. Что я делаю не так?
6 Armando
 
06.08.13
22:33
7 bambazamba
 
06.08.13
22:33
(6) Увы, нет.  OAuth 2.0 не получится.
8 Сниф
 
07.08.13
19:23
Эх, давно не брал в руки объектную модель HTML.

Автор, к решению твоего вопроса есть два подхода.
Первый - это путь из (5). Лично я не видел людей, добившихся успеха таким образом, но это не значит, что их нет.
Второй путь заключается в том, что ты загружаешь страницу в поле HTML на форме и работаешь с объектной моделью HTML. Минус этого способа - должна быть открыта именно форма.

Далее общий принцип работы такой.
1. для анализа страницы в Мозилле устанавливаешь плагин Firebug;
2. с помощью Firebug узнаешь ID нужных тебе элементов страницы  ID: поле логин, поле пароль и кнопка ввод.

Заполняешь поля пароля, логина и вызываешь у элемента страницы с id="quick_login_button" событие click (нажать).
9 Сниф
 
07.08.13
19:24
То что кнопка "Ввод" ВКонтакте имеет ID именно  id="quick_login_button" я узнал с помощью плагина Firebug.
10 Web00001
 
07.08.13
19:32
(8) Лет тристо назад, набросал на коленке по просьбе RayCon за 15 минут, обработка переводила справочник номенклатура на английский гугл транслейтом, когда он был бесплатным
    Начало = ТекущаяДата();
    Ключ = "ЗдесьКакойТоключ";
    Ашттп = Новый HTTPСоединение("http://www.googleapis.com/language/translate/";,,,,,Истина);
    
    
    Текст = Новый ТекстовыйДокумент();
    //Текст.Прочитать("D:\Work\2.txt");
    //РазобратьФайл(Текст);
    
    счНоменклатуры = 1;
    СправочникВыборка = Справочники.Номенклатура.Выбрать();
    Пока СправочникВыборка.Следующий() Цикл
        СпрОбъект = СправочникВыборка.ПолучитьОбъект();
        Попытка
            Ашттп.Получить("v2?key=ЗдесьКакойТоключ&q="+СпрОбъект.Наименование+"&source=ru&target=en", "D:\Work\2.txt");
        Исключение
            Сообщить(СпрОбъект.Наименование);
        КонецПопытки;    
        Текст.Прочитать("D:\Work\2.txt");
        Перевод = РазобратьФайл(Текст);
        
        Если НЕ Перевод = Неопределено Тогда
            СпрОбъект.Наименование = Перевод;
            СпрОбъект.Записать();
        Иначе    
            //Сообщить?
        КонецЕсли;
        счНоменклатуры = счНоменклатуры + 1;
        Состояние("Обрабатывается " + счНоменклатуры + " элемент справочника");
    КонецЦикла;
    
    ПрошлоВремени = ТекущаяДата() - Начало;
    Сообщить("Заняло "+ПрошлоВремени/60+ " минут");
    Сообщить("Обработали "+ счНоменклатуры +" элементов");
11 Web00001
 
07.08.13
19:35
строку с урлом основательно покорежил парсер. Вот здесь http://www.1c-cod.ru/p/wtuqs50gpjwhuth/clear будет удобнее
12 Web00001
 
07.08.13
20:00
(9) А просто посмотреть код страницы, слишком сложно? https://api.monosnap.com/image/download?id=HJMzm6YtNB7thDcD1Dy2nOoo1
13 bambazamba
 
08.08.13
01:06
Все здорово.
Теперь вернемся к авторизации :)
14 Web00001
 
08.08.13
01:13
(13)Ну так как бы эта... возвращайся. post ты понимаешь как сделать, ответ прочитать тоже могёшь. Мне немного непонятно честно сказать как куку ловить. Если она есть, то разобраться с ней то бы передать обратно на сервер уже не сложно.
Ошибка? Это не ошибка, это системная функция.