На каком языке написан Вконтакте

Лучшие библиотеки для работы с VK API на C++, Java, Python и других языках

Работать с API ВКонтакте доводилось многим из нас, и каждый может сказать: работать с ним напрямую неудобно. Разумеется, было написано множество библиотек, предоставляющих удобный интерфейс работы с ним. Их можно и даже нужно использовать для облегчения работы и ускорения разработки. Сегодня tproger представляет подборку библиотек, набравших на GitHub больше всего звездочек и форков, для почти всех самых популярных ныне языков.

Java

Недавно Вконтакте выпустили официальный SDK для работы с API средствами Java. Страница проекта на GitHub содержит множество примеров, вот один из них, для публикации фотографии на странице пользователя:

PhotoUpload serverResponse = vk.photos().getWallUploadServer(actor).execute(); WallUploadResponse uploadResponse = vk.upload().photoWall(serverResponse.getUploadUrl(), file).execute(); List photoList = vk.photos().saveWallPhoto(actor, uploadResponse.getPhoto()) .server(uploadResponse.getServer()) .hash(uploadResponse.getHash()) .execute(); Photo photo = photoList.get(0); String attachId = «photo» + photo.getOwnerId() + «_» + photo.getId(); GetResponse getResponse = vk.wall().post(actor) .attachments(attachId) .execute();

C#

InTouch — кроссплатформенная библиотека для С#, которая весьма активно развивается. На момент публикации заявлена полная совместимость с версией 5.57 VK API. Вот пример работы с библиотекой:

На каких языках программирования написаны популярные сайти и приложение?


var clientId = 12345; // API client Id var clientSecret = «super_secret»; // API client secret var client = new InTouch(clientId, clientSecret); // Authorization works only in Windows (and WinPhone) Store Apps // otherwise you’ll need to set received «access_token» manually // using SetSessionData method. await client.Authorize(); // Gets a list of a user’s friends. var friends = await client.Friends.Get(); if (friends.IsError == false) < ShowFriendsList(friends.Data.Items.Where(friend =>friend.Online)); > client.Dispose();

Или даже короче:

using (var client = new InTouch(12345, «super_secret»)) < await client.Authorize(); var friends = await client.Friends.Get(); // . >

Node.js

Node-vkapi — современная библиотека для JavaScript, основанная на промисах. Она доступна так же в npm:

npm install node-vkapi —only=prod —save

Вот пример кода, который публикует текст на стену пользователя с помощью node-vkapi:

const VKApi = require(‘node-vkapi’); const VK = new VKApi(< app: < id: 1234567890, secret: ‘app-secret-key’ >, auth: < login: ‘+79871234567’, pass: ‘password123’ >>); VK.auth.user(< scope: [‘audio’, ‘photos’, ‘friends’, ‘wall’, ‘offline’] >).then(token => < return VK.call(‘wall.post’, < owner_id: token.user_id, friends_only: 0, message: ‘Post to wall via node-vkapi’ >).then(res => < // wall.post response return ‘https://vk.com/wall’ + token.user_id + ‘_’ + res.post_id; >); >).then(link => < // returned data from previous .then console.log(‘Post was published: ‘ + link); >).catch(error => < // catching errors console.log(error); >);

С++

VK API Lib — небольшая библиотека для работы API, написанная на чистом C++. Из зависимостей требуется только Curl. Библиотека предоставляет базовый класс VK::Client с методами авторизации и выполнения запросов к API.

Еще по теме:  Как создать сайт как Вконтакте

На основе его вы можете создавать свои классы для работы с разделами. В примере приведен класс VK::Messages . Базовый пример использования:

#include «src/api.h» . VK::Client api; if(api.auth(login, pass, access_token)) < cout else

Python

>>> import vk >>> session = vk.Session() >>> api = vk.API(session) >>> api.users.get(user_ids=1) []

В настоящее время библиотека достаточно активно развивается, однако до этого в её разработке был перерыв примерно на год. Всегда хочется использовать актуальные инструменты, поэтому стоит упомянуть и другую библиотеку для Python. Вот как выглядит загрузка фотографии на сервер с её помощью (комментарии сохранены):

PHP

Библиотека на PHP, использующая, по словам автора, «сахалинские технологии», чтобы облегчить труд разработчика. Написана в ООП-стиле. Одна из самых крутых ее фич — генерация на основе запроса на PHP готового кода для специального метода ВК execute.

Пример просмотра последних 200 сообщений:

//MESSAGES $data = $vk->request(‘messages.get’, [‘count’ => 200]); $userMap = []; $userCache = []; $user = new getjumpVkWrapperUser($vk); $fetchData = function($id) use($user, $userCache) < if(!isset($userMap[$id])) < $userMap[$id] = sizeof($userCache); $userCache[] = $user->get($id)->response->get(); > return $userCache[$userMap[$id]]; >; //REQUEST WILL ISSUE JUST HERE! SINCE __get overrided $data->each(function($key, $value) use($fetchData) < $user = $fetchData($value->user_id); printf(«[%s] %s
«, $user->getName(), $value->body); return; >);

Ruby

vkontakte_api — ruby-адаптер для ВКонтакте API. Он позволяет вызывать методы API, загружать файлы на сервера ВКонтакте, а также поддерживает все 3 доступных способа авторизации (при этом позволяя использовать стороннее решение).

Работать с ним можно, например, так:

Perl

Простенькая, полностью асинхронная библиотека AnyEvent::VK, выполняющая все запросы по https. По сути является клиентом. Автор рекомендует использовать Async::Chain для комбинирования вложенных колбеков.

Для мобильной разработки

Android (Java)

Еще одна официальная библиотека, на этот раз — для Android. Написана на Java и позволяет сильно упростить работу с API ВКонтакте из этого языка.

Пример отправки запроса:

Windows Phone (C#)

Последняя в этом списке официальная разработка: написанная на C# базовая библиотека для разработки на WP, похожая по функциональности на свои аналоги под Android и iOS.

Отправка запроса на список друзей:

private void GetUserInfoButton_Click(object sender, RoutedEventArgs e) < VKRequest.Dispatch>( new VKRequestParameters( «users.get», «fields», «photo_200, city, country»), (res) => < if (res.ResultCode == VKResultCode.Succeeded) < VKExecute.ExecuteOnUIThread(() =>< var user = res.Data[0]; userImage.Source = new BitmapImage(new Uri(user.photo_200, UriKind.Absolute)); userInfo.Text = user.first_name + » » + user.last_name; >); > >); >

iOS (Objective C)

Официальная библиотека от ВКонтакте, предназначенная для написания приложений под iOS. Написана на Objective-C.

Пример кода с отправкой запроса:

Для хипстеров

Rust

На Github есть библиотека и для этого языка — vkrs. Она не слишком активно развивается, но это уже хоть что-то. Вот так она выглядит в деле:

extern crate vkrs; use std::; use vkrs::*; fn main() < let api = api::Client::new(); let oauth = api.auth( env::var(«VK_APP_ID»).unwrap(), env::var(«VK_APP_SECRET»).unwrap()); let auth_uri = oauth.auth_uri(auth::Permission::Audio).unwrap(); // Or if you want to get permissions for specific request: // let auth_uri = oauth.auth_uri_for::<audio::Search>(); println!(«Go to <>and enter code below. «, auth_uri); let inp = io::stdin(); let code = < let mut buf = String::new(); inp.read_line( buf >; // You may want to save this token for future use to avoid asking user // to authorize the app on each run. let token = oauth.request_token(code.trim()).unwrap(); // The access token is JSON serializable with serde, so you can do it this way: // File::create(TOKEN_FILE).ok().map(|mut f| serde_json::to_writer(token).ok()).unwrap(); // // And then you can load it again: // let token: auth::AccessToken = File::open(TOKEN_FILE).ok().and_then(|mut f| serde_json::from_reader( let songs = api.get(Some(Poets Of The Fall») .performer_only(true) .count(200)) .unwrap(); for song in println!(«», song); > >

Еще по теме:  Как сделать так чтобы парень который тебе нравится написал тебе первый в ВК

Golang

Как ни странно, была написана обёртка для VK API и на языке Go. Так же, как и остальные, она доступна на Github. Hello World на ней выглядит так:

package main import ( «github.com/urShadow/go-vk-api» «log» «strconv» ) func main() < api := vk.New(«ru») // set http proxy //api.Proxy = «localhost:8080» err := api.Init(«TOKEN») if err != nil < log.Fatalln(err) >api.OnNewMessage(func(msg *vk.LPMessage) < if msg.Flags if msg.Text == «/hello» < api.Messages.Send(vk.RequestParams< «peer_id»: strconv.FormatInt(msg.FromID, 10), «message»: «Hello!», «forward_messages»: strconv.FormatInt(msg.ID, 10), >) > > >) api.RunLongPoll() >

Если для какого-либо языка вы знаете более актуальную или функциональную библиотеку — пишите в комментарии, мы обязательно обновим статью.

Источник: tproger.ru

Описание и примеры работы с API ВКонтакте

Телеграм-канал Программист и бизнес.
Каждый день интересные истории, как программист строит бизнес.

Эта статья не для программистов (они и так уже всё это знают), а для тех, кто только подходит к теме программирования. Или для тех, кто просто услышал термин VK API, и хочет понимать, что это такое.

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Что такое API

Сайт Вконтакте с технической стороны представляет собой сложный комплекс программ, которые работают на серверах компании. Результат их работы отображается в браузерах или мобильных приложениях в виде знакомого всем сайта социальной сети. Пользователи могут взаимодействовать с сайтом – публиковать статьи, проводить поиск, подписываться на сообщества и так далее. Все эти действия обеспечиваются программами, которые работают совершенно незаметно для посетителей.

Этих программ (скриптов, как их называют программисты) может быть очень много, и они должны взаимодействовать друг с другом. Для этого разработаны специальные правила и протоколы, следуя которым, отдельные скрипты имеют возможность отвечать на вызовы и получать ответы от других. В результате всё огромное множество разнообразных скриптов работает как единое целое.

Совокупность этих правил и составляет единый интерфейс взаимодействия со сложной программной системой. Его называют API – Application Programming Interface.

Взаимодействие программных модулей именно через библиотеку API, это общепринятая норма. Без такого механизма строить сложные программные системы было бы просто невозможно. Ведь тогда каждый скрипт имел бы собственные правила приёма внешних команд и выдачи результатов.

Взаимодействие каждых двух отдельных скриптов нужно было бы программировать отдельно, и весь проект был бы похоронен под огромной кучей разнородных правил. Разобраться в них не было бы никакой возможности. Если же в проект изначально закладывается принцип работы модулей только через API, тогда всё многообразие взаимодействий сводится к нескольким несложным правилам, которые универсальны и подходят для любого скрипта. Это очень удобно.

Еще по теме:  Новый дизайн Вконтакте как включить

Чем же этот механизм может быть полезен простому программисту, который не состоит в штате компании Вконтакте и хочет просто написать какой-нибудь полезный скрипт для себя?

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Где найти документацию по VK Api

Соцсеть в своей документации предлагает подробное описание своего API для сторонних разработчиков. Главная страница этой документации располагается вот здесь: https://vk.com/dev/manuals. Тут описаны программные объекты и их методы, перечень возвращаемых кодов и ошибок, права доступа, шаблоны запросов и так далее.

Программист, желающий разработать какое-либо приложение (подключаемое внутри ВК либо работающее на отдельном сайте) может в коде своей программы предусмотреть вызовы методов ВК, используя эти самые правила взаимодействия API. Это даст возможность обращаться к функционалу социальной сети Вконтакте.

Например, можно получать список подписчиков того или иного сообщества, делать массовые рассылки сообщений, публиковать новые записи, и так далее. Возможности здесь очень широкие. Именно на возможностях API ВК основаны многие полезные приложения. Например, музыкальные плееры для проигрывания музыки из страниц друзей, разнообразные игры, счётчики «Мои гости», альтернативные мобильные клиенты, такие как VK Settings, VK Coffee, Kate Mobile и так далее.

Полноценной работе с API Вконтакте посвящены многочисленные статьи в Интернете, эта информация очень обширна. Мы здесь покажем решение только двух конкретных задач.

Примеры работы API VK на PHP

Сначала нужно создать новое приложение, которое будет подключаться к ВК. Это делается на странице по ссылке https://vk.com/apps?act=manage. Пройдя по ней, нужно кликнуть по кнопке «Создать приложение».

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Далее нужно выбрать тип создаваемого приложения: встраиваемое, отдельное (stand-alone), или на сайте. Если выбираете последний вариант, то нужно будет ввести адрес сайта и базовый домен.

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

В любом из трёх случаев после создания появится страница новой программы, и потребуется открыть вкладку «Настройки». Там вам понадобится два параметра: ID приложения и защищённый ключ.

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Теперь можно начинать программирование функции авторизации пользователя. Её код может быть таким:

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Этот код выводит на экран ссылку для открытия окна авторизации пользователя.

А этот код получает универсальный токен доступа access_token:

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Программисты, знакомые с языком PHP увидят, что этот код, используя параметры «ID приложения» и «Защищённый ключ», обращается к специальной утилите oauth.vk.com, которая возвращает токен доступа. Он необходим для успешной авторизации пользователя.

Изучение работы с API Вконтакте может занять немало времени, так как он предлагает много объектов и методов. Но усилия стоят того – появится возможность писать любые приложения и игры, использующие движок ВК. Причём нет никакой разницы, на каком языке вы будете это делать – PHP, Pithon, JavaScript, C# или любой другой. Программному интерфейсу это безразлично, нужно только, чтобы соблюдались правила составления и отправки запросов.

Источник: greatchat.ru

Рейтинг
( Пока оценок нет )
Загрузка ...