Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.04.2012, 16:32
sardox sardox вне форума
Прохожий
 
Регистрация: 14.04.2012
Сообщения: 2
Репутация: 10
По умолчанию Авторизация вконтакте

всем доброго времени суток, есть проблема после авторизации вконтакте - получаю ошибку iohandler value is not valid
в чем проблема?
сама авторизация проста:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
http: TIdHTTP;
begin
http := TIdHTTP.Create(nil);
http.HandleRedirects:=True;
http.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01';
try
s := http.Get('http://vk.com/login.php?m=1&email=!!!!!&pass=!!!!!');
except
if http.ResponseCode = 302 then Form1.Mmo1.Lines.Add('302!!');
end;
s := http.Get('http://m.vk.com/mail.php'); //тут еррор
end;
с чем связано?
Мне нужно получить код страницы меил.пхп после авторизации (без разницы, мобильной или обычной)

Последний раз редактировалось sardox, 14.04.2012 в 17:19.
Ответить с цитированием
  #2  
Старый 14.04.2012, 17:17
sardox sardox вне форума
Прохожий
 
Регистрация: 14.04.2012
Сообщения: 2
Репутация: 10
По умолчанию

что уже пробовал - добавлял IdSSLIOHandlerSocketOpenSSL1, при выполнении стал ругаться на отсутствие библиотек, добавил libeay32 и ssleay32 в корень с ехе, но все равно ругается на библотеки. Что за ошибка иохандлер еррор? В правильном ли я направлению иду?
Спасибо)
Ответить с цитированием
  #3  
Старый 14.04.2012, 17:20
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Версии библиотек не верные
А вообще.. через синапс лучше.. он быстрее работает .... чем ИНДИ
Вот пример идеально работающий насинапсе

Код:
HTTP:=THTTPSend.Create;
HTTP.MimeType:='application/x-www-form-urlencoded';
HTTP.Headers.Clear;
HTTP.Cookies.Clear;
HTTP.Document.Clear;
Answer:=TStringStream.Create('');
POSTDATA:=TStringStream.Create('');
POSTDATA.WriteString('act=login');
POSTDATA.WriteString('&q=1');
POSTDATA.WriteString('&al_frame=1');
POSTDATA.WriteString('&expire=');
POSTDATA.WriteString('&captcha_sid=');
POSTDATA.WriteString('&captcha_key=');
POSTDATA.WriteString('&from_host=vk.com');
POSTDATA.WriteString('&from_protocol=http');
POSTDATA.WriteString('&ip_h=');
POSTDATA.WriteString('&email='+login);
POSTDATA.WriteString('&pass='+pass);
HTTP.Document.LoadFromStream(POSTDATA);
HTTP.HTTPMethod('POST','https://login.vk.com/?act=login');
if Pos('hash=',HTTP.Headers.Text) <> 0 then
begin
ShowMEssage ('Auth True!');
end;
Ответить с цитированием
Этот пользователь сказал Спасибо ApxaHGe1 за это полезное сообщение:
OTVET (17.01.2013)
  #4  
Старый 15.04.2012, 02:48
Stif21 Stif21 вне форума
Прохожий
 
Регистрация: 15.04.2012
Сообщения: 1
Репутация: 10
По умолчанию

А можно исходник на синапсе полностью рабочий?
Ответить с цитированием
  #5  
Старый 14.12.2012, 22:24
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

подскажите, может кто делал
как мне получить содержимое группы вконтакте по ее адресу
ну например http://vk.com/con.amore
предполагается, что пользователь приложения состоит в группе
я не пойму какой метод использовать.
здесь есть описания методов http://vk.com/page-1_2369282
но ими я не пойму как работать, да и нет там вроде такого
верней есть метод получения записей со стены по ид пользователя
а мне надо по имени группы

авторизацию я делаю с помощью контактовского API
а дальше пока у меня ума не хватает
Ответить с цитированием
  #6  
Старый 15.12.2012, 20:47
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Покажи как авторизацию делал, помогу с API разобраться
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием
  #7  
Старый 15.12.2012, 21:51
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

Да авторизация средствами браузера, то есть в одну строчку

procedure TForm2.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://vk.com/login.php?app=1905253&layout=popup&type=browser');
end;

end.

в форме открывается окно ввода логина-пароля и все. дальше можно делать свои дела.
лучше конечно сделать чтобы выскакивало новое окно, и потом закрывалось после авторизации, по типу как это сделано у Агента вконтакте, но я не понял как это сделать.

моя задача заклчается в том, чтобы отслеживать записи на стене группы, и если появилась новая запись, то выдавать алерт и возможно текст записи. вот и все что требуется от программы.
то есть мне надо в мемо наверное передать html, найти строку "Записей" и перед ней проверять число, если оно меняется, то сооветственно выдавать алерт.
Возможно это можно проще сделать через API, я смотрел метод wall.get – возвращает список записей со стены.
но так и не понял пока можно ли через него свою задачу решить или нет.

здесь http://www.delphiexpert.ru/view_lesson.php?id=98
есть уже готовый пример работы вобщем-то, там и Secret и sig получается для использования потом в методах

Последний раз редактировалось harbor, 15.12.2012 в 22:06.
Ответить с цитированием
  #8  
Старый 15.12.2012, 22:12
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Посмотри мой проект
Тут реализована работа с API вконтакта.
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
harbor (15.12.2012)
  #9  
Старый 15.12.2012, 22:28
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Запрос на апи будет такой:
Код:
api_id=633984
method=wall.get
sig=*
sid=**
owner_id=-№ГРУППЫ
offset=0
count=1000
filter=all
* - Расчитаывается так:
Все строчки запроса, кроме sig и sid, нужно отсортировать по алфавиту, затем делаем MD5
Код:
sig = md5(viewer_idname1=value1name2=value2secret)
viewer_id = Ид пользователя на котором авторизировались
secret = Секретный ключ приложения = C4iUv105ci
Т.е. я использую приложение уличные гонки app633984 и его секретный ключик, т.к. я его знаю = C4iUv105ci
Вообще можно от любого приложения узнать ключик.
** - вот это куки,.. токен не подойдет вроде.
как то так
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
OTVET (17.01.2013)
  #10  
Старый 15.12.2012, 23:08
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

ну про метода я вроде понял

вроде кое что начало прояснятся
метод wall.get

"В случае успеха возвращает общее количество сообщений"
то есть число записей на стене я так полагаю, то что мне и нужно
и

и массив объектов, каждый из которых содержит поля:
..
date - время публикации записи в формате unixtime
text - текст записи
..

а вот как обрабатывать массив, не совсем понятно.

Кстати, а создать свое приложение теперь нельзя чтоли? я что-то нигде не нашел как это сделать
чтобы прога на него ссылалась.
Ответить с цитированием
  #11  
Старый 15.12.2012, 23:14
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

Цитата:
Сообщение от SCrat.ORS
Посмотри мой проект
Тут реализована работа с API вконтакта.

кстати, а в твоем примере авторизация работает нормально?
а то моя дельфя вроде откомпилила, ввожу свои данные, жму поехали и вылазит какая-то программная ошибка
Ответить с цитированием
  #12  
Старый 15.12.2012, 23:18
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

и вот это в методе я не понял, задается

owner_id
идентификатор пользователя (по умолчанию - текущий пользователь). Чтобы получить записи со стены группы (публичной страницы, встречи), укажите её идентификатор со знаком "минус": например, owner_id=-1 соответствует группе с идентификатором 1.

я вобще не знаю какой индетификатор должен быть, он ведь у каждого пользователя свой будет наверное
Ответить с цитированием
  #13  
Старый 16.12.2012, 13:38
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

в данном случае owner_id = -28646177
28646177 - это номер интересующей тебя группы http://vk.com/con.amore
обрати внимание на знак минус.
т.е.
Код:
api_id=633984
method=wall.get
sig=*
sid=**
owner_id=-28646177
offset=0
count=1000
filter=all

что касается авторизации, в моём примере она уже не работает. Поэтому и дает ошибку. Я не зря спрашивал про авторизацию. Ты получаешь токен, и я не уверен что он подойдет в качестве sid, т.к. sid приходит в Cookies.

Про массив обьекта, по умолчанию ты получишь xml текст с кучей запрошенной информации - это и есть массив, а дальше XMLDocument со вкладки internet кидаешь на форму и грузишь полученный xml в него, и вытаскиваешь всю интересующую тебя инфу.

Про приложение... - создать можно,.. но нахрен оно надо без надобности. ссылку где создавать приложеньки не помню.
__________________
Програмистами не рождаются, ими становятся!

Последний раз редактировалось SCrat.ORS, 16.12.2012 в 13:41.
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
OTVET (17.01.2013)
  #14  
Старый 16.12.2012, 14:32
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

а как ты узнал id группы если не секрет
Ответить с цитированием
  #15  
Старый 16.12.2012, 15:34
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Лови подарок.
рабочий пример

как узнал. - зашёл в группу и посмотрел ссылку подписавшихся -
http://vk.com/search?c[section]=people&basic=1&c[group]=28646177
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter