Всем привет, давненько я не писал именно по проекту VK API в Delphi, которые за последние 3 месяца потерпел серьезные изменения, это в первую очередь связано с тем, что каждый месяц, разработчики Вконтакте стараются вводить нововведения в данную социальную сеть. В связи с этим появились новые методы API, например, такие как, работа с подписчиками, работа с желаниями и так далее.
Но еще более радостной новостью стало то, что теперь независимый разработчик может осуществлять часть запросов к страницам пользователя без авторизации приложения и соответственно без авторизации пользователя, а пользователю также нет необходимости давать определенные права приложению.
Для некоторых, возможно это будет неудобно, так как, во-первых, не все методы таким образом доступны и на сколько я знаю, данный способ выводит результат в формате JSON.
Кроме всего этого, данные запросы осуществляются по защищенному протоколу, а кроме всего этого методом GET, но это нас не смущает, так как мы рассматривали, как работать с TIdHTTP по защищенному протоколу страниц, а если уже не заработает, то можно воспользоваться библиотекой Synapse, которая также неплохо справляется с работой с защищенными страницами.
Естественно не все запросы API будут работать без авторизации приложения, в основном это запросы, которые имеют небольшую битовую маску доступа к странице пользователя.
Итак, приступим, создадим проект в Delphi и на форму установим следующие компоненты:
- TIdHTTP
- TIdSSLIOHandlerSocketOpenSSL
- TButton
Кроме всего этого нам необходимы следующие библиотеки:
- libeay32.dll
- ssleay32.dll
Так как, данные запросы работают по зазщищенному протоколу, а Indy стандарнтыми средствами не справляется с SSL, то давайте вспомним статью Indy+SSL. Загрузка https-страниц. TIdHTTP+SSL.
Теперь нам остаются просто связать компонент TidHTTP с компонентом TIdSSLIOHandlerSocketOpenSSL в свойстве IOHandler и написать следующий код:
procedure TForm1.btn1Click(Sender: TObject);
var
html:WideString;
begin
html:=idhtp1.Get('https://api.vkontakte.ru/method/getProfiles?uids=1&fields=photo');
ShowMessage(html);
end;
Теперь остается только использовать JSON-библиотеку для парсинга данных или написать самому.
Исходник прикладывать не буду, так как весь исходник — это статья (то что находиться в статье)
Кстати, я считаю, что у многих людей есть свой собственный дом, будь то загородный, будь то жилой, но он есть. В нем всегда существует особая атмосфера, в отличие от той же самой квартиры. Так вот, если Вы воспользуетесь работой специалистов, которые знают, что такое отделка коттеджей, то Вы сможете получить ту самую нужную атмосферу в доме, даже еще и лучше.
Похожие записи
Метки: API, Idhttp, Indy, Indy+https, indy+SSL, ssl, VK API, vkontakte, vkontakte API, вконтакте API
запросы без авторизации выполняются по http вроде бы,х ттпс тут не нужен. по крайней мере месяц назад был.
нет, сейчас уже по защищенной странице осуществляется, если просто по http:// то данные будут заполняться эрорами
Можешь исходники выложить? А то не получается что-то. С авторизацией на ура все идет, а вот без нее…
SSL прикрутили? если да, то проблем не должно возникнуть
Та в том то и дело, что прикрутил. Может дело в старой версии инди?
покажите, какую ошибку выдает, если ошибка связана с SSL, то значит Вы не правильно прикрутили SSL
Вот класс для работы с vk Api на Delphi:
http://www.delphisources.ru/fo.....hp?t=17957