Newsfeed get vk api пример

VK API news.feed get пример вывода списка новостей для текущего пользователя feed
——————————————————————————-
Наш канал поможет вам выучить то, что вы не могли
запомнить с другими, мы стараемся сделать процесс
обучения максимально простым и быстрым в котором
даже не требуется говорить, так как вы смотрите и
улавливаете посыл с самой первой секунды. Мы делаем
то что поможет вашей дальнейшей карьере разработчика,
от самого начала до конца нет границ, всегда есть то,
что можно рассказать на пальцах так чтоб ты понял и
остался доволен тем что не зря провел время за
просмотром очередного урока.
Готовые примеры скриптов наш не стандартный подход и
техника разработки помогут от стара до мала.
———————————-

Поделиться

Web Samodelkin

Всё мое свободное время занимает веб разработка, фотошоп и многое другое. Вот наверное и пришло время поделиться всем накопленным багажом знаний с вами. Кто то умеет а кто то нет, буду рад если мои видео помогут кому то разобраться с непроходимыми дебрями веба, А именно — php, mysql, jQuery, html, css. html, css, js, jquery, javascript, php, mysql, vk, api, vk-api, вк, апи, видео, уроки, видеоуроки, веб, веб разработка, верстка, создание сайтов, it, языки программирования, уроки программирования для начинающих, javascript jquery, jquery js, jquery примеры, программирование, основы программирования для начинающих, курсы программирования, веб сайт, веб дизайн

Наш новый курс «VK News Feed App»!

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

VK API newsfeed.get пример вывода списка новостей для текущего пользователя feed

VK API news.feed get пример вывода списка новостей для текущего пользователя feed
——————————————————————————-
Наш канал поможет вам выучить то, что вы не могли
запомнить с другими, мы стараемся сделать процесс
обучения максимально простым и быстрым в котором
даже не требуется говорить, так как вы смотрите и
улавливаете посыл с самой первой секунды. Мы делаем
то что поможет вашей дальнейшей карьере разработчика,
от самого начала до конца нет границ, всегда есть то,
что можно рассказать на пальцах так чтоб ты понял и
остался доволен тем что не зря провел время за
просмотром очередного урока.
Готовые примеры скриптов наш не стандартный подход и
техника разработки помогут от стара до мала.
———————————-

Еще по теме:  Что делать если нет сети Вконтакте

Поделиться

Web Samodelkin

Всё мое свободное время занимает веб разработка, фотошоп и многое другое. Вот наверное и пришло время поделиться всем накопленным багажом знаний с вами. Кто то умеет а кто то нет, буду рад если мои видео помогут кому то разобраться с непроходимыми дебрями веба, А именно — php, mysql, jQuery, html, css. html, css, js, jquery, javascript, php, mysql, vk, api, vk-api, вк, апи, видео, уроки, видеоуроки, веб, веб разработка, верстка, создание сайтов, it, языки программирования, уроки программирования для начинающих, javascript jquery, jquery js, jquery примеры, программирование, основы программирования для начинающих, курсы программирования, веб сайт, веб дизайн

VK API newsfeed.get пример вывода списка новостей для текущего пользователя feed

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

vkontakte_api: ruby-адаптер для ВКонтакте API

В начале этого года мне понадобилось работать с API ВКонтакте из rails-приложения. Увы, я не нашел сколько-нибудь устраивающего меня гема: где-то меня принуждали писать названия методов в camelCase (что в ruby-коде выглядит неестественно), где-то — обязательно проходить авторизацию через библиотеку (при том, что я использовал omniauth) и вообще везде для обращений к API использовался захардкоденный Net::HTTP , блокирующий реактор эвентмашины, на которую я тогда прицеливался. Также в плане документации почему-то все было очень грустно, и приходилось постоянно читать исходники.

Так появился на свет vkontakte_api. Рельсовый проект, послуживший поводом для написания данной библиотеки, уже успел почить — но гем живет и продолжает развиваться, в июле достигнув версии 1.0 (которая послужила поводом для значительных изменений). Используя faraday , библиотека поддерживает вызов любых методов API, загрузку файлов на сервера ВКонтакте и опциональную авторизацию, не принимая за программиста решения, упомянутые в предыдущем абзаце.

Посмотрим, как работать с API с помощью vkontakte_api . В качестве примера сгодится несложное веб-приложение, отображающее на странице ленту новостей (API-метод newsfeed.get), список друзей (friends.get) и групп (groups.get) пользователя, прошедшего OAuth2-авторизацию. А выглядеть это будет примерно так:

Настройка

В авторизации используются ID приложения и защищенный ключ, которые можно получить на странице редактирования приложения на ВКонтакте; а также redirect_uri, который будет описан далее. Эти параметры указываются в блоке VkontakteApi.configure , который удобно разместить в config/initializers/vkontakte_api.rb ; в rails-приложении можно сгенерировать этот файл с настройками по умолчанию с помощью встроенного генератора.

Еще по теме:  Маленькие дома большие идеи Вконтакте

$ rails generate vkontakte_api:install

Настройки указываются следующим образом.

# config/initializers/vkontakte_api.rb VkontakteApi.configure do |config| config.app_id = ‘123’ # ID приложения config.app_secret = ‘AbCdE654’ # защищенный ключ config.redirect_uri = ‘http://vkontakte-on-rails.herokuapp.com/callback’ end

(на самом деле доступных настроек гораздо больше, но остальные тут не понадобятся)

Авторизация

Входить на сайт понадобится только через ВКонтакте, поэтому задействовать omniauth будет нецелесообразно — используем возможности vkontakte_api .

Авторизация приложения на ВКонтакте использует протокол OAuth2. Это означает, что в результате авторизации будет получен токен доступа, который необходимо передавать при вызове методов API.

Схема его получения следующая: пользователь переходит по ссылке на страницу авторизации на ВКонтакте, соглашается дать приложению доступ к его (пользователя) данным, нажимая кнопку «Разрешить», и ВКонтакте редиректит его обратно в приложение, передавая в URL-е параметр code . Далее приложение, используя этот код, получает токен и user_id пользователя отдельным запросом и сохраняет их в сессии.

Для защиты от CSRF-атак протокол OAuth2 рекомендует передавать параметр state с неугадываемым значением при отправке пользователя на авторизацию, предварительно сохранив его в защищенном месте; а при возвращении пользователя сверять полученный в параметрах state с сохраненным значением.

Итак, на странице входа нужно отобразить ссылку, ведущую на страницу авторизации приложения на ВКонтакте. vkontakte_api предоставляет хелпер VkontakteApi.authorization_url для генерации URL этой страницы; в параметрах нужно передать scope — это права, которые получит приложение, в виде массива символов (или же строки с названиями, разделенными запятыми) — и описанный выше state .

Войти через ВКонтакте

Тут нужно заметить, что по непонятным причинам ВКонтакте игнорирует state , если в scope не указан notify .

Когда пользователь подтвердит права приложения, он будет перенаправлен на указанный ранее в настройках redirect_uri (содержащий путь к SessionsController#callback ), при этом в URL будут переданы параметры state и code . Как говорилось чуть выше, state нужно сверить с уже сохраненным; а на code остановимся поподробнее.

С помощью кода можно получить токен доступа, для этого нужно выполнить запрос к ВКонтакте. Пользователь в этом запросе никак не участвует — запрос идет прямо от нашего сервера к vk.com. Для этого vkontakte_api также предоставляет хелпер — VkontakteApi.authorize , единственный параметр — пресловутый code .

При выходе пользователя из нашего приложения просто почистим сессию:

class SessionsController < ApplicationController def destroy session[:token] = nil session[:vk_id] = nil redirect_to root_url end end

Еще по теме:  Как найти человека по ip адресу Вконтакте местоположение

Токен получен, можно работать с самим API.

Вызов методов API

Чтобы вызывать методы API, нужен объект VkontakteApi::Client . В конструктор нужно просто передать токен.

Далее можно вызывать методы на самом клиенте. Методы с составными именами вызываются по цепочке: vk.users.get(params) . В соответствии с принятыми в ruby-сообществе соглашениями названия методов пишутся в snake_case : метод API likes.getList можно вызвать как vk.likes.get_list .

Все параметры API являются именованными и передаются в виде хэша, проиндексированного названиями параметров, например vk.users.get(uid: 1) . Если API ожидает получить в параметре коллекцию объектов, перечисленных через запятую, то их можно передать в виде массива — vkontakte_api склеит его автоматически (аналогично обрабатывается параметр scope в авторизации). При этом вместо строк можно использовать символы.

Итак, нам нужна лента новостей, друзья и группы текущего пользователя. Также выведем имя и аватар пользователя в навигации. Для получения этих данных есть методы newsfeed.get , friends.get , groups.get и users.get соответственно (последний будем вызывать, передавая параметром id нашего пользователя). Результат newsfeed.get содержит отдельно сами новости, содержащие id пользователей и групп, и отдельно массивы с упомянутыми пользователями и группами; не показанный здесь метод MainController#process_feed добавляет к каждой новости ее источник (пользователь или группа, написавшая пост) под ключом source .

Результаты методов возвращаются в виде Hashie::Mash — это расширение стандартного Hash из гема hashie, позволяющее обращаться к элементу через метод, название которого соответствует ключу этого элемента в хэше ( user.name == user[:name] ).

В навигации нужно показать аватар и имя текущего пользователя, полученные с ВКонтакте.

Здесь и далее используется ряд несложных хелперов ( vk_url , name_for , avatar_for итд), определенных в приложении — все они достаточно тривиальны, при желании можно почитать код здесь.

Теперь выведем на страницу ленту новостей.

И, наконец, отобразим в сайд-баре друзей и группы пользователя.

Друзья онлайн
Все друзья
Группы
Никого не найдено #», vk_url(friend), target: ‘_blank’ %> Вы не состоите в группах

Живое демо можно посмотреть здесь (осторожно, бесплатный heroku). Оно ничего не пишет на ВКонтакте — все методы API используются только для чтения данных и вывода их на страницу. Весь код лежит на Github.

Еще немного материалов по vkontakte_api

  • домашняя страница проекта
  • README.md
  • RDoc-документация со 100% покрытием
  • более продвинутый пример использования vkontakte_api (асинхронное приложение-мессенджер на вебсокетах)

Источник: habr.com

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