Ofline
Последнее редактирование:
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Ну как видешь разницу, я сделал через api запросы,а ты через отловленые снифером запросы.Неплохо. Однако, получение токена - это не авторизация. Прав на публикацию сообщений не будет. Сделай нормальное видео, с авторизацией в ВК. Например такой код:
/// функция парсинга - начало
function Pars(T_, ForS, _T:string) :string;
var a, b:integer;
begin
Result :='';
if (T_='')or(ForS='')or(_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=Copy(ForS, 1, b - 1);
end;
// конец
var
// объявим переменные
http:thttpsend;
html:tstringlist;
data:tstringstream;
ip_h:string;
lg_h:string;
q_hash,hash:string;
vk_id:string;
// конец
begin
http:=thttpsend.Create; // создаём
html:=tstringlist.Create; // создаём
data:=tstringstream.Create; // создаём
// конец
http.UserAgent:='Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1'; // подключаем агент
http.KeepAlive:=true; // свободное подключение (принимаем данные)
if http.HTTPMethod('get','https://vk.com/login.php') then // переходим на vk.com и парсим ip_h и lg_h из исходного кода
begin
html.LoadFromStream(http.Document); // загружаем исходный код в html
Memo1.Lines.Add('['+TimeToStr(Time)+'] Авторизируемся в ВК...');
ip_h:=pars('name="ip_h" value="',utf8toansi(html.Text),'" />'); // парсим значение ip_h
lg_h;=pars('name="lg_h" value="',utf8toansi(html.Text),'" />'); // парсим значение lg_h
http.Headers.Clear; // чистим заголовки
http.Document.Clear; // чистим документ
// обязательно перед новым запросом нужно всё чистить ибо будет аншлаг-аншлаг
data.WriteString('act=login&_origin=https%3A%2F%2Fvk.com&ip_h='+ip_h+'&lg_h='+lg_h+'&email='+Edit1.Text+'&pass='+Edit2.Text); // генерируем пост запрос
http.MimeType:='application/x-www-form-urlencoded'; // заголовки
http.KeepAlive:=true; // свобода (принимаем данные)
http.UserAgent:='Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1'; // юзерагент ( мы не робот )
http.Document.LoadFromStream(data); // подгружаем наши данные в запрос (POST)
http.HTTPMethod('post','https://login.vk.com/?act=login'); // отправляем пост запрос с данными
if pos('&__q_hash=',http.Headers.Text)<>0 then // если нашли q_hash в заголовках, тогда мы авторизовались ( почти )
begin // копируем hash
hash:=copy(http.Headers.Text,pos('hash=',http.Headers.Text),100)+';';
q_hash:=pars('hash=',hash,';');
// конец
http.Headers.Clear; // опять таки чистим все заголовки
http.Document.Clear; // clear document
http.HTTPMethod('get',' https://vk.com/login.php?act=login&role=fast&redirect=1&to=&s=1&__q_hash='+trim(q_hash)); // запрос, trim - удаляет пробелы
Memo1.Lines.Add('['+TimeToStr(Time)+'] Авторизация прошла успешно!');
http.Headers.Clear; // clear
http.Document.Clear; // clear
http.HTTPMethod('get','https://vk.com/feed');
html.LoadFromStream(http.Document); // загрузка документа
vk_id:=pars('id: ',utf8toansi(html.Text),','); // парсим ID в vk_id
Memo1.Lines.Add('['+TimeToStr(Time)+'] Получен ID аккаунта: '+vk_id); // вывод id
end else
begin Memo1.Lines.Add('['+TimeToStr(Time)+'] Не верный логин или пароль.'); // ну думаю ясно
end;
end else
begin
// если не попали на vk.com - ип в бане или хз что
Memo1.Lines.Add('['+TimeToStr(Time)+'] Вы забанены!');
end;
http.Free; // освобождаем память
data.Free; // освобождаем память
end;
end.
аааа проблема как прикрепить к сообщению файл картинку....? апи юзал не понимаю часть как файл вложить какие параметры писать
Проблема в том что не приходит такой ответ сервера точнее приходит но не от того URL куда заливаешь файл = то есть приходит 2 пост ответа. программа ловит только 1. не нужный.{"server": "1234", "photo": "1234", "hash": "12345abcde"}
.
попробуйте посмотреть снифером где вы ошиблись.Проблема в том что не приходит такой ответ сервера точнее приходит но не от того URL куда заливаешь файл = то есть приходит 2 пост ответа. программа ловит только 1. не нужный.