Про гем sinatra-flash, я писав у статті Flash-повідомлення і Sinatra
Задачею є створити замість стандартного styled_flash, методу-помінчника для Sinatra, який відображатиме попередження стилізовані під Bootstrap.
Показ дописів із міткою sinatra. Показати всі дописи
Показ дописів із міткою sinatra. Показати всі дописи
середа, 15 серпня 2012 р.
вівторок, 22 травня 2012 р.
CarrierWave з DataMapper у Sinatra
У вільний час займаюся розробкою веб-додатку на Sinatra з використанням DataMapper. І ось задався питанням завантаження аватарів на сервер та їх після-обробкою.
Переглянувши доступні інструменти для забезпечення цієї функціональності, вибір впав на бібліотеку CarrierWave, яка на відміну від більшості інших не зав'язана на Rails/ActiveRecord.
CarrierWave описує себе, як "першокласне рішення для завантаження файлів для Rails, Sinatra та інших веб-додатків на основі Rack". Проект був започаткований у серпні 2008 року, і перший випуск відбувся в березні 2009 року. Перша його назва була Merb::Upload і він був без підтримки Rails.
Той факт, що CarrierWave почав своє життя в якості плагіна для Merb може пояснити його модульність, гнучкість і розширюваність.
Завдяки fog, він має підтримку Amazon S3, Rackspace Cloud Files і Google Storage for Developers. Він також підтримує звичайне зберігання файлів і GridFS в MongoDB.
Має підтримку незліченної кількості ORM: ActiveRecord, Mongoid, DataMapper, Sequel, MongoMapper, CouchDB.
Обробка зображення доступна засобами RMagick, ImageScience або MiniMagick.
Сама по собі ця бібліотека дуже добре документована, і якщо раптом когось цікавлять деталі, то читайте wiki.
У цій статті для прикладу ми напишемо просту фотогалерею.
Наступні gem`и повинні бути встановлені:
Переглянувши доступні інструменти для забезпечення цієї функціональності, вибір впав на бібліотеку CarrierWave, яка на відміну від більшості інших не зав'язана на Rails/ActiveRecord.
CarrierWave описує себе, як "першокласне рішення для завантаження файлів для Rails, Sinatra та інших веб-додатків на основі Rack". Проект був започаткований у серпні 2008 року, і перший випуск відбувся в березні 2009 року. Перша його назва була Merb::Upload і він був без підтримки Rails.
Той факт, що CarrierWave почав своє життя в якості плагіна для Merb може пояснити його модульність, гнучкість і розширюваність.
Завдяки fog, він має підтримку Amazon S3, Rackspace Cloud Files і Google Storage for Developers. Він також підтримує звичайне зберігання файлів і GridFS в MongoDB.
Має підтримку незліченної кількості ORM: ActiveRecord, Mongoid, DataMapper, Sequel, MongoMapper, CouchDB.
Обробка зображення доступна засобами RMagick, ImageScience або MiniMagick.
Сама по собі ця бібліотека дуже добре документована, і якщо раптом когось цікавлять деталі, то читайте wiki.
У цій статті для прикладу ми напишемо просту фотогалерею.
Наступні gem`и повинні бути встановлені:
- sinatra
- datamapper
- dm-sqlite-adapter
- slim
- carrierwave - для завантаження зображень
- carrierwave-datamapper - для зв'язку DataMapper і CarrierWave
- rmagick - для створення мініатюр зображень(в Ubuntu потрібно встановити пакет libmagick++-dev)
пʼятниця, 18 травня 2012 р.
Розгортання додатку Sinatra на OpenShift
Red Hat OpenShift - це нова, вільно-масштабована "платформа як послуга(Platform as a service, PaaS) для розробки веб-додатків. На даний момент підтримує Java, Ruby, Node, Python, PHP і Perl.
Картриджі - це компоненти додатку OpenShift, які включають в себе бази даних(MySQL, PostgreSQL, MongoDB) та інші утиліти(Cron, phpMyAdmin, RockMongo, OpenShift Metrics). Додавання картриджа у додаток забезпечує бажану функціональність.
Для початку необхідно зареєструватися на сайті https://openshift.redhat.com і створити новий додаток.
Вибрати тип додатку(в нашому випадку це Ruby 1.8.7). Вказати ім'я додатку і простір імен.
Вітання, тепер ви у хмарах!
Новий додаток буде доступний за URL виду:
http://<ім'я додатку>-<простір імен>.rhcloud.comпростір>ім'я>
OpenShift використовує розподілену система керування версіями коду Git. Коли ви внесете зміни у віддалений репозиторій, сервіс автоматично розгорне ваш код і перевантажить додаток якщо необхідно.
Картриджі - це компоненти додатку OpenShift, які включають в себе бази даних(MySQL, PostgreSQL, MongoDB) та інші утиліти(Cron, phpMyAdmin, RockMongo, OpenShift Metrics). Додавання картриджа у додаток забезпечує бажану функціональність.
Для початку необхідно зареєструватися на сайті https://openshift.redhat.com і створити новий додаток.
Вибрати тип додатку(в нашому випадку це Ruby 1.8.7). Вказати ім'я додатку і простір імен.
Вітання, тепер ви у хмарах!
Новий додаток буде доступний за URL виду:
http://<ім'я додатку>-<простір імен>.rhcloud.comпростір>ім'я>
OpenShift використовує розподілену система керування версіями коду Git. Коли ви внесете зміни у віддалений репозиторій, сервіс автоматично розгорне ваш код і перевантажить додаток якщо необхідно.
неділя, 29 квітня 2012 р.
Стрімінг в Sinatra
Починаючи з 1.3.0, Sinatra підтримує стрімінг(streaming API). В інтернеті ви точно стикалися з його реалізацією. Наприклад стрічка Twitter чи новини ВКонтакте.
Іноді потрібно почати відправляти дані клієнту прямо в процесі генерування частин цих даних. В особливих випадках потрібно постійно відправляти дані до тих пір, поки клієнт не закриє з'єднання. Ви можете використовувати метод stream замість написання власних "обгорток".
Почнемо з класичного прикладу з документації Sinatra:
Якщо сервер не підтримує стрімінг (наприклад, WEBRick), то всі дані будуть відправлені за один раз відразу після того, як блок, переданий в stream, завершиться.
Іноді потрібно почати відправляти дані клієнту прямо в процесі генерування частин цих даних. В особливих випадках потрібно постійно відправляти дані до тих пір, поки клієнт не закриє з'єднання. Ви можете використовувати метод stream замість написання власних "обгорток".
Почнемо з класичного прикладу з документації Sinatra:
get '/' do
stream do |out|
out << "It's gonna be legen -\n"
sleep 0.5
out << " (wait for it) \n"
sleep 1
out << "- dary!\n"
end
end
Якщо сервер не підтримує стрімінг (наприклад, WEBRick), то всі дані будуть відправлені за один раз відразу після того, як блок, переданий в stream, завершиться.
вівторок, 21 лютого 2012 р.
OmniAuth Identity з DataMapper в Sinatra
З виходом OmniAuth версії 1.0 з'явилася нова стратегія Identity, яка дозволяє використовувати традиційну аутентифікацію по логіну і паролю.
Раніше я вже писав про OmniAuth - раз і два.
У цій статті ми познайомимося з стратегією під назвою Identity, яка дозволяє користувачу створити обліковий запис, вказавши ім'я користувача та пароль, замість входу через зовнішнього постачальника.
Вихідний код цієї статті заснований на OmniAuth для Sinatra, і якщо ви не знайомі з OmniAuth цю статтю варто прочитати в першу чергу.
Раніше я вже писав про OmniAuth - раз і два.
У цій статті ми познайомимося з стратегією під назвою Identity, яка дозволяє користувачу створити обліковий запис, вказавши ім'я користувача та пароль, замість входу через зовнішнього постачальника.
Вихідний код цієї статті заснований на OmniAuth для Sinatra, і якщо ви не знайомі з OmniAuth цю статтю варто прочитати в першу чергу.
вівторок, 14 лютого 2012 р.
Sinatra: Up and Running.pdf
Ruby for the Web, Simply
By Alan Harris, Konstantin HaasePublisher: O'Reilly Media
Released: November 2011
Pages: 120
понеділок, 13 лютого 2012 р.
Налаштування will_paginate для Bootstrap у Sinatra
Нещодавно вийшла друга версія популярного HTML-фреймворка Bootstrap. Для тих хто не в курсі що це, настійно рекомендую ознайомитися. Цей набір дозволяє створювати шаблони сайтів за лічені години(перевірено на власному досвіді) на основі готових наборів стилів, які різко спрощують розстановку елементів на сторінці та забезпечують якісну типографію.
Крім того вийшла версія will_paginate 3.0.3, у яку крім усього іншого також ввійшов коміт, що виправляв кілька багів пов'язаних з DataMapper.
І у зв'язку з цієї радісною новиною, я вирішив прикрутити пагінацію до свого проекту на Sinatra, у якому, як ви вже мабуть здогадалися використовується Bootstrap.
Підключаємо необхідні бібліотеки:
Вказуємо will_paginate генерувати теги у стилі Bootstrap:
І на останок пишемо помічник, який дозволить виводити навігацію у простій формі:
Крім того вийшла версія will_paginate 3.0.3, у яку крім усього іншого також ввійшов коміт, що виправляв кілька багів пов'язаних з DataMapper.
І у зв'язку з цієї радісною новиною, я вирішив прикрутити пагінацію до свого проекту на Sinatra, у якому, як ви вже мабуть здогадалися використовується Bootstrap.
Підключаємо необхідні бібліотеки:
require 'will_paginate' require 'will_paginate/data_mapper'
Вказуємо will_paginate генерувати теги у стилі Bootstrap:
class BootstrapLinkRenderer < ::WillPaginate::Sinatra::LinkRenderer
protected
def html_container(html)
tag :div, tag(:ul, html), container_attributes
end
def page_number(page)
tag :li, link(page, page, :rel => rel_value(page)), :class => ('active' if page == current_page)
end
def gap
tag :li, link(super, '#'), :class => 'disabled'
end
def previous_or_next_page(page, text, classname)
tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ')
end
end
І на останок пишемо помічник, який дозволить виводити навігацію у простій формі:
== page_navigation_links @events
helpers do
def page_navigation_links(pages)
will_paginate(pages, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapLinkRenderer, :previous_label => '←', :next_label => '→')
end
end
пʼятниця, 23 грудня 2011 р.
Створення простого AJAX-сайту з Sinatra та JQuery
За основу цієї статті взятий скрінкаст Building a Simple AJAX Website with Sinatra & jQuery. Зараз у вільний час я працюю над сайтом isit.heroku.com, який основну свою ідею почерпнув саме цього скрінкасту.
У цій статті ви дізнаєтеся:
Розробку нашого "Is It" веб-сайту розпочнемо з огляду структури додатку на Sinatra.
app.rb - це головний файл нашого додатку, який містить єдиний маршрут до кореневої URL-адреси. Також ви помітили, у ньому підключається файл lib/countdown.rb.
У цій статті ви дізнаєтеся:
- Як створити свій власний веб-сайт із таймером зворотного відліку
- Як визначити в Sinatra, якщо запит XMLHttpRequest чи ні
- Як відключити шаблони(layouts) для XHR запитів у Sinatra
"Is It" веб-сайт
Ви можливо зустрічали цей жанр сайтів раніше. Це прості веб-сайти з "Так" або "Ні" в середині сторінки. Вони відповідають на питання типу "Це Різдво?", "Це Новий Рік?" або інші термінові питання. Іноді на сторінці також є таймер зворотного відліку.Розробку нашого "Is It" веб-сайту розпочнемо з огляду структури додатку на Sinatra.
app.rb - це головний файл нашого додатку, який містить єдиний маршрут до кореневої URL-адреси. Також ви помітили, у ньому підключається файл lib/countdown.rb.
## app.rb
# -*- encoding: utf-8 -*-
require 'sinatra'
require 'haml'
require_relative 'lib/countdown.rb'
get '/' do
end
середа, 26 жовтня 2011 р.
Модель User в DataMapper для Warden
В минулій статті Інтеграції Warden з Sinatra і DataMapper ми написали тестовий додаток, який використовує аутентифікацію по імені і паролю. Уважний читач не міг не помітити, що паролі у базі даних зберігаються у відкритому вигляді. Це все робилося, щоб не завантажувати статтю зайвими сутностями.
Але очевидно, з точки зору безпеки паролі у базі даних повинні зберігатися в зашифрованому вигляді. Цю тему ми і розглянемо у цій статті.
За основу взята 11 глава "Task F: Administration" з книги Agile Web Development with Rails (3rd edition).
Тут основний упор буде на роботу з DataMapper. Крім того у другій частині статті ми закладемо фундамент адміністративного інтерфейсу для керування користувачами.
Але очевидно, з точки зору безпеки паролі у базі даних повинні зберігатися в зашифрованому вигляді. Цю тему ми і розглянемо у цій статті.
За основу взята 11 глава "Task F: Administration" з книги Agile Web Development with Rails (3rd edition).
Тут основний упор буде на роботу з DataMapper. Крім того у другій частині статті ми закладемо фундамент адміністративного інтерфейсу для керування користувачами.
понеділок, 24 жовтня 2011 р.
Інтеграції Warden з Sinatra і DataMapper
В Інтернеті можна знайти багато статей на тему аутентифікації з допомогою Warden у Sinatra. Я не буду оригінальним, і напишу ще одну, щоб самому розібратися з особливостями цього інструменту. Ціллю цієї статті не є показати повністю готовий механізм аутентифікації. А лише продемонструвати основні можливості інтеграції Warden з Sinatra і Datamapper.
Warden - це Rack middleware, що забезпечує механізм аутентифікації для веб-додатків на Ruby.
Warden вимагає деяких налаштувань для Sinatra. Цього можна уникнути, використовуючи плагін Sinatra::Warden. Але ми ж не шукаємо простих шляхів.
Warden - це Rack middleware, що забезпечує механізм аутентифікації для веб-додатків на Ruby.
Warden вимагає деяких налаштувань для Sinatra. Цього можна уникнути, використовуючи плагін Sinatra::Warden. Але ми ж не шукаємо простих шляхів.
вівторок, 4 жовтня 2011 р.
Приклад роботи Delayed_job з DataMapper у Sinatra
Delayed_job (або DJ) бібліотека асинхронної черги фонових завдань написана на Ruby.
Може знадобитись для таких типових задач як:
- поштова розсилка
- зміна розмірів зображень
- конвертування аудіо/відео
- HTTP завантаження
- оновлення інформації
- перевірка спаму
понеділок, 3 жовтня 2011 р.
Реліз Sinatra 1.3.0
Світ побачила версія 1.3.0 фреймворка Sinatra.
Найбільш помітне нововведення в цьому релізі - додавання streaming API. Цікавим моментом є те, що використовувати цю можливість можна незалежно від того, на якому сервері запущено додаток.
Приклад коду:
Крім того додали підтримку HTTP-методу PATCH:
Про інші зміни читайте в офіційному прес-релізі New feature release, Contrib and Recipes
Приклад коду:
get '/' do
stream do |out|
out << "It's gonna be legen -\n"
sleep 0.5
out << " (wait for it) \n"
sleep 1
out << "- dary!\n"
end
end
Крім того додали підтримку HTTP-методу PATCH:
patch '/' do
# ...
end
Про інші зміни читайте в офіційному прес-релізі New feature release, Contrib and Recipes
пʼятниця, 2 вересня 2011 р.
will_paginate 3.0: Sinatra і DataMapper
Після більше року розробки вийшла фінальна версія will_paginate 3.0. Основні зміни:
- Підтримка Rails 3.0 і 3.1
- Підтримка Sinatra і Merb
- Інтеграція з DataMapper і Sequel
- Переклад із бібліотекою i18n
- Припинена підтримка Rails версій 1.2 - 2.3
gem install will_paginate
Sinatra додаток потребує наступні бібліотеки: require 'will_paginate'
require 'will_paginate/data_mapper' # або active_record/sequel
Вносимо зміни до дії index, щоб виводити по 5 записів на сторінку. Номер сторінки передаватиметься у рядку запиту (наприклад, http://localhost:4567/posts?page=3) # index
get "/posts" do
@posts = Post.paginate :page => params[:page], :per_page => 5
haml :"posts/index"
end
Додаємо помічник will_paginate для виведення посилань на сторінки: #header
%h1 Мій блог
%a{:href => "posts/new"}> New Post
#content
- @posts.each do |post|
.container
%h3= post.title
%p= post.body
%p= post.created_at
#pagination
= will_paginate @posts
понеділок, 1 серпня 2011 р.
OmniAuth для Sinatra
Про швидкий запуск Sinatra додатку, використовуючи OmniAuth, як протокол автентифікація я писав у OmniAuth: Зовнішня, проста автентифікація для Rack на прикладі Sinatra і ВКонтакте. Код цієї статті відрізняється від попередньої тим, що включає в себе роботу з сесіями і модель для користувачів у базі даних. Це означає, що користувач може залишатися в системі, поки ваш сервер залишається живим.
Для прикладу використовуватимемо ВКонтакте. Але ви можете використовувати будь-якого іншого постачальника аутентифікації, що підтримується бібліотекою OmniAuth.
Для прикладу використовуватимемо ВКонтакте. Але ви можете використовувати будь-якого іншого постачальника аутентифікації, що підтримується бібліотекою OmniAuth.
вівторок, 26 липня 2011 р.
Rack::Webconsole - інтерактивна консоль для веб-додатків
Rack::Webconsole надає Rack "прошарок"("middleware"), який включає інтерактивну консоль у користувацький інтерфейс вашого веб-додатку. Він працює із Rails 3, Padrino, Sinatra, і є чудовим способом заглянути під капот вашого додатку без доступу до сервера.
Встановити Rack::Webconsole можна як і будь-який інший gem:
Rack-прошарки - це компоненти, які «сидять» між сервером і вашим додатком, і відстежують і/або маніпулюють HTTP запитами/відповідями для надання різної функціональності.
У Sinatra дуже просто використовувати такі "прошарки" за допомогою методу use:
Rack::Webconsole потребує JQuery. Для цього ви повинні додати наступний рядок до вашому додатку:
І це працює! Запустіть сервер, зайдіть на будь-яку сторінку і натисніть клавішу `.
Більше інформації на офіційній сторінці rack-webconsole.
Встановити Rack::Webconsole можна як і будь-який інший gem:
$ gem install rack-webconsole
Rack-прошарки - це компоненти, які «сидять» між сервером і вашим додатком, і відстежують і/або маніпулюють HTTP запитами/відповідями для надання різної функціональності.
У Sinatra дуже просто використовувати такі "прошарки" за допомогою методу use:
require 'sinatra'
require 'rack/webconsole'
use Rack::Webconsole
Rack::Webconsole потребує JQuery. Для цього ви повинні додати наступний рядок до вашому додатку:
Rack::Webconsole.inject_jquery = true
І це працює! Запустіть сервер, зайдіть на будь-яку сторінку і натисніть клавішу `.
Більше інформації на офіційній сторінці rack-webconsole.
четвер, 21 липня 2011 р.
Flash-повідомлення і Sinatra
Rails має приємний маленький хеш, який називається Flash. Це не супер герой, який може розвивати надзвукову швидкість і використовувати надлюдські рефлекси, а лише витончений спосіб тимчасового зберігання повідомлень між запити. Наприклад, якщо щось відбувається у вашому додатку (наприклад, зберігається), а потім користувач перенаправляється на іншу сторінку, то ви могли б зберігати повідомлення в Flash про те, що запис був збережений. Це повідомлення потім буде показане на наступній сторінці (після перенаправлення).
Офіційний FAQ по Sinatra рекомендує використовувати Rack::Flash, щоб отримати ту ж функціональність.
Один із розробників фреймворку Sinatra - Konstantin Haase у своєму twitter рекомендує використовувати Sinatra::Flash
Про нього і піде мова нище.
Офіційний FAQ по Sinatra рекомендує використовувати Rack::Flash, щоб отримати ту ж функціональність.
Один із розробників фреймворку Sinatra - Konstantin Haase у своєму twitter рекомендує використовувати Sinatra::Flash
If you're using it with Sinatra, switch from rack-flash to sinatra-flash--http://twitter.com/konstantinhaase/status/92219479890726912
Про нього і піде мова нище.
понеділок, 20 червня 2011 р.
Sinatra - Up and Running
Alan Harris і Konstantin Haase працюють над книгою Sinatra – Up and Running від O'Reilly, вихід якої запланований на серпень 2011 року. Приємно, що нарешті спільнота розробників Sinatra і Padrino матиме власну книгу. Попередньо замовити її можна тут.
Ось короткий опис книги:
Sinatra дає розробникам маленький але потужний і масштабований фреймворк для розробки веб-додатків на Ruby. Ця вступна книга дасть читачеві старт, допомагаючи йому створити, встановити і відшліфувати свій перший веб-додаток з Sinatra. Також вона досліджує, як Sinatra вписується в екосистему веб-додатків, головним чином у порівнянні з його більшим братом, Ruby On Rails.
пʼятниця, 17 червня 2011 р.
Використання will_paginate з DataMapper і Sinatra
Часто потрібно так, щоб у представлені(View) відображалися не усі записи з масиву на одній сторінці. У цьому випадку необхідно реалізувати розбиття на сторінки(pagination). Забезпечення цієї функціональності буде простішим з використанням плагіна WillPaginate, який є популярним у середовищі Rails-розробників. У цій статті мова піде про використання WillPaginate разом з Sinatra і DataMapper. Все що нам потрібно це версія >3.0 з підтримкою DataMapper.
Здійснюємо пошук
За приклад ми візьмемо наш проект блогу із серії статей про Sinatra. Нашою задачею буде вивести на головну сторінку статті з розбивкою по сторінках.
Здійснюємо пошук
$ gem search will_paginate --remote
і встановлюємо необхідну версію$ sudo gem install agnostic-will_paginate
За приклад ми візьмемо наш проект блогу із серії статей про Sinatra. Нашою задачею буде вивести на головну сторінку статті з розбивкою по сторінках.
пʼятниця, 20 травня 2011 р.
OmniAuth: Зовнішня, проста автентифікація для Rack на прикладі Sinatra і ВКонтакте
В останні один-два роки веб-додатки зазнали радикальних змін. Час, коли кожен сайт представляв собою бункер, який чекає приходу нових користувачів поступово проходить. Я роздратовано зітхаю кожен раз, коли мені доводиться заповнювати чергову реєстраційну форму замість того, щоб скористатися "Connect with Facebook", "Sing in with Twitter" або "Log in with OpenID". Зараз веб-додатки стають все більш відкритими світу. Один з кращих способів збільшення популярності та життєздатності нового сервісу є його доповнення існуючими базами користувачів таких додатків, як: Twitter, Facebook, ВКонтакте, тощо.
Нещодавно я писав про авторизацію додатків ВКонтакте використовуючи відкритий протокол OAuth 2.0. У цій статті мова піде про OmniAuth.
OmniAuth - система аутентифікації заснована на Rack, яка значно спрощує зовнішню аутентифікацію в тому сенсі, що вам немає потреби розбиратися в API провайдерів, а також не вимагає ніякої інформації про те, що буде відбуватися з надіcланими після аутентифікації даними.
Що це означає для вас? Це означає, що ви можете легко реалізувати аутентифікацію в вашому додатку через Twitter, Facebook, LinkedIn, Google, GitHub, ВКонтакте, Mailru і т.д. І потім мати повний контроль над нею.
Нещодавно я писав про авторизацію додатків ВКонтакте використовуючи відкритий протокол OAuth 2.0. У цій статті мова піде про OmniAuth.
OmniAuth - система аутентифікації заснована на Rack, яка значно спрощує зовнішню аутентифікацію в тому сенсі, що вам немає потреби розбиратися в API провайдерів, а також не вимагає ніякої інформації про те, що буде відбуватися з надіcланими після аутентифікації даними.
Що це означає для вас? Це означає, що ви можете легко реалізувати аутентифікацію в вашому додатку через Twitter, Facebook, LinkedIn, Google, GitHub, ВКонтакте, Mailru і т.д. І потім мати повний контроль над нею.
середа, 13 квітня 2011 р.
Авторизація ВКонтакте використовуючи OAuth 2.0 на прикладі Ruby і Sinatra
Віднедавна для авторизації додатків ВКонтакте використовується відкритий протокол OAuth 2.0. Тепер інтегрувати сайти і клієнтські програми з соціальною мережею стало значно простіше.
На сторінці з документацією нової системи авторизації написано, що підтримуються два типи авторизації: серверна і клієнтська.
У результаті проходження процесу авторизації вам видається ключ доступу access_token, з допомогою якого ви можете виконувати будь-які запити до API ВКонтакте від імені користувача або від імені додатку.
Не дивлячись на новизну протоколу OAuth 2.0, вже зараз на його сайті можна знайти бібліотеки для більшості популярних мов програмування, в тому числі і для Ruby
Крім появи підтримки OAuth у ВКонтакте змінився спосіб взаємодії з API. Тепер всі запити відправляються з безпечного протоколу HTTPS, в результаті чого зникла необхідність підписувати кожен запит.
Я не буду вдаватися у подробиці процесу авторизації. Про це можна почитати у документації ВКонтакте.
Нижченаведений код показує наскільки легко використовувати API ВКонтакте з OAuth2 gem в Ruby.
На сторінці з документацією нової системи авторизації написано, що підтримуються два типи авторизації: серверна і клієнтська.
У результаті проходження процесу авторизації вам видається ключ доступу access_token, з допомогою якого ви можете виконувати будь-які запити до API ВКонтакте від імені користувача або від імені додатку.
Не дивлячись на новизну протоколу OAuth 2.0, вже зараз на його сайті можна знайти бібліотеки для більшості популярних мов програмування, в тому числі і для Ruby
Крім появи підтримки OAuth у ВКонтакте змінився спосіб взаємодії з API. Тепер всі запити відправляються з безпечного протоколу HTTPS, в результаті чого зникла необхідність підписувати кожен запит.
Я не буду вдаватися у подробиці процесу авторизації. Про це можна почитати у документації ВКонтакте.
Нижченаведений код показує наскільки легко використовувати API ВКонтакте з OAuth2 gem в Ruby.
Підписатися на:
Дописи (Atom)











