No Image

Работа с api что это

СОДЕРЖАНИЕ
6 просмотров
10 марта 2020

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

API (application programming interface) — это посредник между разработчиком приложений и какой-либо средой, с которой это приложение должно взаимодействовать. API упрощает создание кода, поскольку предоставляет набор готовых классов, функций или структур для работы с имеющимися данными.

API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Вам не нужно знать в подробностях, как устроена база, из каких таблиц и полей каких типов она состоит — достаточно того, что API-запрос об этом «знает». Синтаксис запросов и тип возвращаемых ими данных строго определены на стороне самого сервиса.

Например, для получения данных о пользователе с идентификатором 210700286 необходимо составить запрос такого вида:

Рассмотрим отдельно все его составляющие.

  • https:// — протокол соединения.
  • api.vk.com/method — адрес API-сервиса.
  • users.get — название метода API ВКонтакте. Методы представляют собой условные команды, которые соответствуют той или иной операции с базой данных — получение информации, запись или удаление. Например, users.get — метод для получения информации о пользователе, video.add — метод для добавления видеозаписи в свой список, likes.delete — метод для удаления отметки «Мне нравится».

Все методы разделены на секции. Например, для работы с сообществами Вам нужны методы секции groups, для работы с фотографиями — photos, и так далее. Полный список методов по секциям доступен на этой странице.

  • ?user_ >
  • В ответ сервер вернет JSON-объект с запрошенными данными (или сообщение об ошибке, если что-то пошло не так). JSON — это формат записи данных в виде пар «имя свойства»: «значение». Если Вы раньше не встречались с этим форматом, мы рекомендуем познакомиться с ним, прежде чем продолжить чтение: JSON, Wikipedia

    Ответ на наш запрос выглядит так:

    Структура ответа каждого метода также строго задана, и при работе с API Вы заранее знаете, что в поле id придет число, а в поле first_name — строка. Такие правила оговариваются на страницах с описанием метода и соответствующих объектов, которые он возвращает в ответе. Например, users.get — здесь описаны входные параметры метода и структура его ответа, а здесь — user подробно расписано каждое поле объекта из ответа.
    Если Вы уже имеете опыт работы с JSON, Вам также может быть полезна информация о JSON схеме API ВКонтакте: JSON схема API ВКонтакте.
    Объект из ответа может быть не уникален для конкретного метода. Например, объект пользователя с набором полей, содержащих данные о его образовании, возрасте, интересах, может возвращаться в ответе от методов users.get, users.search, groups.getMembers и еще нескольких.

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

    Откройте страницу «Управление» в левом меню, затем нажмите «Создать приложение» — Вы попадете на страницу https://vk.com/editapp?act=create

    Нужно выбрать один из трех типов приложений:

    • Standalone-приложение — это API_ID для мобильного или десктопного клиента, внешнего сайта, где работа с API будет вестись из Javascript. Основная мысль в том, что запросы к API должны осуществляться с устройства пользователя. В интерфейсе приложения с таким типом доступны настройки SDK и подключение сертификатов для push-уведомлений.
    • Веб-сайт — регистрация API_ID для внешнего сайта и работы с API с сервера. Например, если Вы хотите написать скрипт на PHP с использованием API ВК, Вам нужен именно этот вариант.
    • IFrame/Flash приложение — это те самые приложения, которые Вы можете видеть в нашем каталоге https://vk.com/apps. Они загружаются непосредственно на сервер ВКонтакте (Flash) или встраиваются во фрейме с внешнего сайта.

    Если Вы пока не определились, какое приложение хотите создать, выберите первый тип ("Standalone").

    После подтверждения действия Вы попадете на страницу с информацией о приложении. Откройте вкладку «Настройки» в меню слева. Вы увидите поле "ID приложения", в котором будет указано число, например, 5490057. Это число — идентификатор приложения, он же API_ID, APP_ID, client_id, оно потребуется Вам в дальнейшей работе.

    ВКонтакте — социальная сеть, где есть дружеские связи, настройки приватности и даже черные списки. Многое зависит от того, кто просматривает страницу: кто-то увидит на ней всю ту же информацию, что и владелец, а кто-то — лишь общедоступные данные.

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

    Читайте также:  Чем отличается pci от pci express

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

    Мы воспользуемся самым простым способом (Implicit flow) и получим токен для работы с API из созданного Вами на прошлом этапе приложения.

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

    Число 5490057 в запросе нужно заменить на API_ID Вашего приложения.

    Нажмите Enter. Откроется окно с запросом прав. В нем отображаются название приложения, иконки прав доступа, и Ваши имя с фамилией.

    Нажмите «Разрешить». Вы попадете на новую страницу с предупреждением о том, что токен нельзя копировать и передавать третьим лицам. В адресной строке будет URL https://oauth.vk.com/blank.html, а после # Вы увидите дополнительные параметры — access_token, expires_in и user_id. Токен может выглядеть, например, так:

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

    Поле expires_in содержит время жизни токена в секундах. 86400 секунд — это ровно сутки. Через сутки полученный токен перестанет действовать, для продолжения работы нужно будет получить новый. Есть возможность получить токен без срока действия — для этого в scope добавьте значение offline. Вы можете принудительно отозвать токен (например, в том случае, если он стал известен постороннему), сбросив сеансы в настройках безопасности Вашего аккаунта или сменив пароль. Также, если речь идет о токене не из Вашего собственного приложения, можно просто удалить приложение из настроек: https://vk.com/settings?act=apps

    Поле user_id содержит id пользователя, для которого получен токен.

    Теперь Вы можете сделать вызов метода от своего имени. Например, получить список друзей, которые сейчас находятся на сайте.

    Для этого введите в адресную строку:

    и вставьте после знака "=" Ваш access_token, затем нажмите Enter. В ответе сервер вернет список идентификаторов Ваших друзей, которые сейчас онлайн. Почитать подробнее о работе этого метода можно здесь. Заметьте, Вы не указали в запросе, для какого пользователя (user_id) нужно получить список — сервер использовал значение по умолчанию, т.е. Ваш идентификатор, который он получил из токена.

    Подробное руководство о получении ключей доступа находится на этой странице.

    Как Вы уже знаете, все методы делятся на секции — friends, photos, video и так далее. Каждая секция соответствует определенному разделу на сайте. Часто приложения создаются для работы с конкретным разделом. Например, для просмотра фотографий или для редактирования видео. При этом логично, что приложению, которое работает только с аудиозаписями пользователя, не нужен доступ одновременно и к его личным сообщениям.

    Поэтому в API права доступа приложения разграничены, как и методы. Приложение может запросить доступ только к группам, а может — к группам, фотографиям и аудиозаписям. На этой странице перечислены все существующие права доступа, которые можно запросить.

    Чтобы запросить права, используйте параметр scope диалога авторизации. Когда Вы получали токен для своего приложения, в scope было указано значение friends — и в окне авторизации приложение запросило доступ к друзьям.

    У каждого права доступа есть уникальное название ("friends", "video" и т.д.) и код (+2, +4, +4096).
    В scope можно перечислить названия нужных прав доступа (например, scope=friends,v >
    Некоторые права доступа из соображений безопасности можно запрашивать только в приложениях с типом Standalone и только в процессе авторизации Implicit Flow, обратите на это внимание.

    Вы познакомились с основными понятиями, связанными с API ВКонтакте. Дальше все зависит лишь от Вашего вдохновения.

    Конечно, на практике никто не работает с API из соседней вкладки браузера. Для этого используют самые разные языки программирования, SDK, генераторы кода. Сам механизм работы с API весьма прост, средства для отправки http-запросов и обработки ответа от сервера предусмотрены практически в любой среде разработки: а значит, возможность выбора всегда есть.

    Начнем с основ: что такое API? Аббревиатура расшифровывается как Application Programming Interface, или интерфейс для программирования приложений. Название, вроде бы, говорит само за себя, но лучше рассмотреть более детальное объяснение.

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

    В случае веб-приложений, API может отдавать данные в отличном от стандартного HTML формате, благодаря чему им удобно пользоваться при написании собственных приложений. Сторонние общедоступные API чаще всего отдают данные в одном из двух форматов: XML или JSON. На случай, если вы решили сделать API для своего приложения, запомните, что JSON намного более лаконичен и прост в чтении, чем XML, а сервисы, предоставляющие доступ к данным в XML-формате, постепенно отказываются от последнего.

    Читайте также:  Фиксация ttl на модеме huawei e3272

    API в веб-приложениях на примерах

    Некое приложение – например, Github – имеет свой API, которым могут воспользоваться другие разработчики. То, как они будут пользоваться им зависит от возможностей, которые предоставляет API и от того, насколько хорошо работает фантазия у разработчиков. API Гитхаба позволяет, например, получать информацию о пользователе, его аватаре, читателях, репозиториях и множество других полезных и интересных сведений.

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

    На основе API строятся такие вещи, как карты 2GIS, всевозможные мобильные и десктопные клиенты для Twitter и Vkontakte. Все их функции стали возможными именно благодаря тому, что соответствующие сервисы имеют качественные и детально документированные API.

    Стандартный запрос данных от стороннего API выглядит примерно так:

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

    Подобным образом можно посылать запрос на любом языке, в том числе и на Ruby. Ответом на запрос будет примерно такая информация:

    Как видно из блока выше, ответ содержит логин, аватар, ссылку на профиль на сайте и в API, статус пользователя, количество публичных репозиториев и прочую полезную и интересную информацию.

    Записаться Хочешь узнать ещё больше? Записывайся
    на обучение к нашим менторам

    Зачем нужен API вашему приложению?

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

    Мобильное приложение! Да-да, множество мобильных приложений для различных сервисов работают при использовании API этих самых сервисов. Вы описали API, сделали простенькое мобильное приложение и клиент со смартфоном будет получать информацию в свое устройство именно через API. Это удобно, это разумно, это имеет смысл.

    Опенсорс. Все становится лучше, если использовать опенсорс 🙂 На самом деле, если у вашего приложения сложилась определенная аудитория, которая пользуется им, почему бы не обернуть это себе на пользу? Ну и на пользу аудитории, конечно же, тоже. Создайте API, при помощи которого ваши пользователи при желании смогут создать новые клиенты для вашего приложения, новые сервисы на его основе и, быть может, раскроют новые его грани.

    Максимальное разделение фронтенда и бэкенда. Например, при использовании фронтенд-фреймворков. О том, как подключить фронтенд-приложение на Angular.js к API мы даже написали целую статью.

    Одного API недостаточно

    Создать полноценный API для своего приложения – лишь половина дела. Как вы предполагаете обращаться к API? Как к нему будут обращаться ваши пользователи?

    Первое, что приходит в голову, это обычная серия HTTP-запросов с целью получения нужной информации, и это неправильный ответ. Самый очевидный способ в этом случае не является самым удобным и простым. Гораздо разумнее будет создать специальную библиотеку для работы с интерфейсом, в которой будут описаны все необходимые способы получения и отправки информации при помощи API.

    Еще раз воспользуемся Github для приведения примера: для работы с АПИ этого прекрасного сервиса (а интерфейс у него предоставляет обширнейшие возможности) создано несколько библиотек на различных языках, например гем Octokit. В документации к таким библиотекам (и приведенному в качестве примера гему) любой заинтересованный разработчик сможет отыскать все необходимые способы получения информации от Гитхаба и отправки её обратно через API сервиса.

    Таким образом, если вы создаете собственный API, подумайте, возможно стоит озаботиться созданием так же и библиотек для работы с ним на наиболее распространенных языках. И будьте готовы, что при определенном уровне востребованности вашего приложения кто-то другой может создать собственную библиотеку для работы с вашим API. Это нормально.

    Полезные ссылки

    По ссылкам ниже вы сможете прочитать о том, почему API – это хорошо и о том, что такое RESTful API и зачем придерживаться подхода REST.

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

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

    • mkdev
    • Менторы
    • Специализации
    • Статьи
    • О проекте
    • Что такое менторство
    • Как проходит обучение
    • Цены
    • FAQ
    • Impressum
    • Аккаунт
    • Записаться
    • Войти
    • Соцсети

    © Copyright 2014 — 2019 mkdev | Privacy Policy | Lang: Russian

    13 ноября 2017 года. Опубликовано в разделах: Азбука терминов. 10684

    Читайте также:  With htc sense планшет

    Что значит API

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

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

    API интерфейс позволяет не тратить свое время, деньги и силы на покупку «нового велосипеда». Вы получаете работающий информационный порт, получающий и отдающий необходимые объемы данных в целях вашей разработки.

    Плюсы:

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

    Минусы:

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

    Примеры API

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

    VKAPI

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

    После слэша идёт наименование используемого API-метода и передаются GET-параметры запроса. Ответ так же приходит по HTTPS в формате JSON.

    TELEGRAM BOT API

    Одно из самых популярных API. С его помощью осуществляется контроль ботов в мессенджере Telegram. После создания бота через @botfather и получения необходимых ключей доступа, вы можете начать взаимодействие с внутренним интерфейсом.

    Где вместо bot0000000 ставится уникальный идентификатор вашего бота, а token выражает секретный ключ.

    Запросы посылаются через HTTPS соединения, название метода указывается через слэш к основному адресу. Ответ приходит в формате JSON.

    OPEN WEATHER MAP API

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

    Формат работа: HTTP передача по api.openweathermap.org/data/2.5/weather? >

    GOOGLE MAPS API

    Что может быть приятнее, чем интерактивная карта мира на сайте? Особенно, если это не шаблонная вставка из Google Maps, а ваша персональная редакция популярной карты с личными кластерами маркеров. Карта будет взаимодействовать с другими скриптами на сайте, посылая информацию о кликах и координатах.

    Подобные возможности предлагает JavaScript API Google Maps. Модуль полностью скриптовой и работает на стороне браузера, поэтому HTTP-запросы из PHP и формирование заголовков на стороне сервера, как было в других API, нам не нужно.

    Например, выставление метки на карте будет выглядеть так:

    var mark = new google.maps.Marker( <
    position: myPOS,
    map: map,
    title:"Hello!"
    >);

    Для чего нужно и чем полезно использование API

    Полезных функций довольно много.

    Первый аспект

    Можно наладить интерактивное взаимодействие пользователя с социальными сетями и мессенджерами, использовать возможности сторонних вычислительных систем для вывода курсов валют, погоды и другой важной информации.

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

    Второй аспект

    Если вы владелец сложных вычислительных мощностей, популярного сервиса или хранилища данных для открытого или полуприватного доступа, то хорошим ходом будет поднять собственное API. Что это даст:

    • Большой поток клиентов.
    • Упрощенный доступ к вашим услугам для партнеров.
    • Удобство статистического анализа использования сервиса.

    Третий аспект

    Почти тот же, что и второй. Но без необходимости реализовывать API для открытого доступа. Если у вас есть портал, и вы хотите создать под него мобильное приложение на Android/IOS, то переписать систему под единое API – лучшее решение. Вся структура данных систематизируется. Сайт и приложение будут работать через единые каналы данных.

    – Только качественный трафик из Яндекса и Google
    – Понятная отчетность о работе и о планах работ
    – Полная прозрачность работ

    Комментировать
    6 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    Adblock detector