Что нового
  • Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Авторизация в ВК (Authorization VK API) Delphi

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,httpsend,ssl_openssl,lib;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
email,pass,response,msg:string;
    { Public declarations }
  end;

var
  Form1: TForm1;
   token:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
s2,userid:string;
begin
email:=Edit1.Text;
pass:=Edit2.Text;
response:=send('GET','https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+email+'&password='+pass+'&captcha_key=&captcha_sid=');
msg:=response;
if Pos('token',response) <> 0 then
  begin

    s2:=copy(response, pos('access_token":"', response), pos('","expires_in', response)-3);
    delete(s2, 1, 15);
     token:=s2;
Memo1.Lines.Add(msg);
msg:=token;

userid:=s2;
s2:=Copy(response,Pos('user_id":',response),Pos('}',response));
Delete(s2,1,9);
Delete(s2,Pos('}',s2),1);
userid:=s2;
Memo1.Lines.Add(msg);
msg:=userid;
Memo1.lines.add (msg);


    end else
begin
    memo1.lines.add('Error');
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
response:= send  ('GET','https://api.vk.com/method/friends.get?uid=95921229&access_token='+token);
msg:=response;
Memo1.Lines.Add(msg)
end;

end.
думаю предельно ясно,как все работает!



Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

Пароль на архив
[HIDE=1]Guardianelinks.com[/HIDE]
 
Последнее редактирование:

keyONE

Знающий кодер
Принятый Кодер
Регистрация
12 Май 2015
Сообщения
2
Баллы
28
Полезная инфа
 

Win1337

Знающий кодер
Принятый Кодер
Регистрация
10 Июн 2015
Сообщения
3
Баллы
28
Возраст
33
Подскажи,что ты добавил в uses
(LIB)
что это? у меня нет такого.
 

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,058
Баллы
155
Возраст
46

Win1337

Знающий кодер
Принятый Кодер
Регистрация
10 Июн 2015
Сообщения
3
Баллы
28
Возраст
33

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

вот скачай и установи и всё будет так в архиве (LIB) компонент есть.
Спасибо,помогло
Но теперь другая проблема встала.
Что бы использовать данный метод авторизации нужно оказывается проходить проверку прилоежния в VK
Как можно по другому сделать авторизацию в вк?
 

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,058
Баллы
155
Возраст
46
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
http: TIdHTTP;
begin
http := TIdHTTP.Create(nil);
http.HandleRedirects:=True;
http.Request.UserAgent :=
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0';
try
s := http.Get('http://vk.com/login.php?m=1&email=' + Edit1.Text +
'&pass=' + Edit2.Text);
Form1.Memo1.Lines.Add(s);
except
if http.ResponseCode = 302 then
s := http.Get('http://vk.com' + http.Response.Location);
end;

if Pos('logout', s) <> 0 then
ShowMessage('OK')
else
ShowMessage('NOT');

Form1.Memo1.Lines.Add(s);
http.Free;

end;
Попробуй так
 

Win1337

Знающий кодер
Принятый Кодер
Регистрация
10 Июн 2015
Сообщения
3
Баллы
28
Возраст
33
А из такого варианта разве мы сможем дальше пользоваться API через запросы?
 

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,058
Баллы
155
Возраст
46

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155

Inquisitor

Знающий кодер
Принятый Кодер
Регистрация
28 Июн 2015
Сообщения
2
Баллы
28
Возраст
23
Неполучается, неверный при входе. Вроде бы вк поменяла что то с авторизацией. Как теперь сделать ?
 

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155

Inquisitor

Знающий кодер
Принятый Кодер
Регистрация
28 Июн 2015
Сообщения
2
Баллы
28
Возраст
23
УАААУУУУУУУУУУУУУУ ТЫ БОГ, КРУТОЙ ОТВЕТ Lomanu4
 

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155
Неполучается, неверный при входе. Вроде бы вк поменяла что то с авторизацией. Как теперь сделать ?
Все осталось без изменений у меня все заходит,смотри внимательно видео!
 

Overovv

Знающий кодер
Принятый Кодер
Регистрация
6 Авг 2015
Сообщения
1
Баллы
28
Возраст
36
ошибку выдает
aptcha_sid= HTTP/1.1
Host: oauth.vk.com:443
Keep-Alive: 300
Connection: keep-alive
что может быть?
 

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,184
Баллы
155

zloy

Принятый Кодер
Регистрация
9 Янв 2016
Сообщения
39
Баллы
50
Возраст
39
а что с проектом не так?
закидываю Project1.dproj всё пусто кода 0 в Unit1.pas
зато тут он есть Unit1.pas.cbk
 
Вверх