Добавил admin | Категория Наши материалы | 01 Ноября 2014
Доброго времени суток уважаемые читатели! Сегодня мы с вами поговорим про API ВКонтакте, точней об использовании API в Delphi. Я буду использовать в этой статье Delphi 2010, в принципе вам ее использовать не обязательно, данный материал будет применим к любой версии Delphi. И так, сегодня мы с вами рассмотрим метод авторизации в VK.COM с помощью indy, настройку компонентов indy для работы с API VK. На самом деле все очень-очень просто и 100 раз находится в гуглояндексе и других поисковиках. Но большинство из них написаны еще под vkontakte.ru, API тогда естественно было другое. Ну да ладно, давайте начинать. Для начала нам понадобятся компоненты:
- IdHTTP
- IdSSLIOHandlerSocketOpenSSL
- IdCookieManager
Ну и стандартно:
- TLabel
- TEdit
- TButton
Настраиваем компоненты
ВАЖНО! В папку с исполнительным файлом программы копируем эти DLL
Они есть в архиве к этому материалу.
И так, настройка компонентов для авторизации вконтакте завершена, необходимые DLL библиотеки скопированы, теперь напишем немного кода.
procedure TForm1.Button1Click(Sender: TObject);
var
TmpStr : string ;
json : TJSONObject ;
client_id
,client_secret : string ;
Token, IdUser : string ;
begin
client_id := Ваш ID полученный на сайте Вконтакте;
client_secret := Секрет от туда же;
try
TmpStr := IdHTTP.Get('https://oauth.vk.com/token?grant_type=password&client_id='+client_id+'&client_secret='+client_secret+'&username='+EdtEmail.Text+'&password='+EdtPass.Text);
except on E : Exception do
begin
MessageBox(Application.Handle, PChar(Format('Ошибка: %s',[e.Message])), 'Error', MB_ICONHAND);
exit ;
end;
end;
json := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(TmpStr),0) as TJSONObject;
Token := json.Get(0).JsonValue.ToString;
Token := StringReplace(Token, '"', '', [rfReplaceAll]);
IdUser := json.Get(2).JsonValue.ToString;
end;
я осознанно опускаю ту часть в которой обычно рассказывают про то как получить ID и секрет от вконтакте, это вы уже читали в предыдущих постах. У нас же будет только самое необходимое, не какого левого материала).
Объясню код:
Первое что вы наверное не видели в других уроках это json : TJSONObject, да да, я правильно разбираю ответы от сервера, так как того просит религия;). Другими словами это правильная переменная для хранения ответа от сервера на наш GET запрос. Инициализируется она просто: json := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(TmpStr),0) as TJSONObject; поля вытащить из нее тоже не составляет большого труда: Token := json.Get(0).JsonValue.ToString;
Токен и айди пользователя нужны для дальнейшего выполнения API функций, о которых мы поговорим с вами в следующих статьях.
Ну собственно и все на этом по коду. Проверку авторизации не делаю, оставляю это вам)))
исходники программы тут, Пароль, как обычно qwerty.