Vkontakte API і Kohana

Займався недавно oauth2 протоколом. І консюмером, і провайдером і всяким всім. Провайдера намутили на раз-два, якщо ви думаєте чи юзати oauth2 в своїх проектах — однозначно да. Простота реалізації і секурність принципу бере своє. Правда якось невдало дуже в RFC написано. Я раза три перечитав всі флови, поки намалював в голові загальну картину як все працює.

Для розминки я намутив собі консюмера, який буде хавати тоукени з вконтактє. Знайшов свого давно-закинутого аккаунта, намутив APP і почав тестувати. Так шоб ви собі орієнтувались на скільки це просто: 20 хв роботи і я вже всьо заработало. Дуже поміг модуль oauth2 (блог автора Івана Броткіна), там є всьо шо вам може бути потрібно.

Давайте буду попорядку всьо розказувати і код показувати. До вашої уваги контроллер, який буде приймати authorization_code від Вконтакте, і ходитиме з цим authorization_code по самий справжнісінький access_token.

Модельку вже самі собі можете написати, в мене модельки дуже екзотичні, так шо приводити їх тут нема сенсу. Собі якось збережете, якщо захочете.

А отак ми можемо взяти любу інформацію, на яку був виписаний тоукен з вконтактє чи нагадити на стіну. Access_token бібліотека сама підставить, в метод передаєте масив параметрів, які одразу ж будуть передані на АПІ Вконтакті. Як ви побачите по ссилці, то вконтактє трошки негарно розділяють методи АПІ, а саме через «.» (точку). В випадку сабжової ліби треба замість точки ставити _, він потім сам намутиться в точку.

Бібліотека власне хоститься тут. Нехай щастить при використанні.

Переїхав на ліноду

Пацанчіки, карочє снявся я на свою ліноду. Всьотаки всюда добре, але вдома найкраще. Ще не рішив чи дійсно поміняється урл на поточний, поки чекаю поки на мене перекинуть мого старого домена. Вот.

На ліноді в мене тут нема місця жручим пам’ять тоннами апачам, гарненький собі стоїть nginx і всьо хвацько роздає. Так шо нармалди, будемо надіятись шо це все запрацує трошки швидше. Такий позитивний пост хочеться розбативи кусочком музики, яка вот буквально шойно підвернулась в інтернетах. Встрічайте, Ляпіс Трубєцкой з пісньою про добро і всяке всьо:

YouTube Preview Image

Сортування кирилиці в MongoDB

Карочє така штука. Якось на днях спиздив таблицю міст і областей України звідси. Не думаю шо комусь буде цікаво як я то парсив, бо це доволі елементарна задача. Вот шо сталось далі це вже буде власне темою статті. Засунув я собі список міст і областей в MongoDB. Тепер хочу час від часу витягувати списки то міст, то областей (такі в мене дурацькі прихоті), але посортовані по алфавіту. Запросєц получається наступним:

db.regions.find().sort({'name': 1});

де name — відповідно ім’я області. По крайній мірі так пише офіційна дока MongoDB на тему сортування. І тут відбуваються чудеса. Виглядає так, шо кириличні символи сказились і я отримую список областей в наступній послідовності:

  1. Івано-Франківська область
  2. Автономна Республіка Крим
  3. Волинська область
  4. …. тут все як положено…
  5. Чернігівська область
  6. м. Київ, міськрада
  7. м. Севастополь, міськрада

Ну тобто всьо вроді правильно, спочатку великі літери, потім маленькі. Але шо Івано-Франківська область робить з самого початку. Ця штука мене харить дуже сильно, ще на телефонах Нокія (по крайній мірі в мене тільки Нокії були, то і про них говорю) теж буква «І» попереду букви «А».

Я підозрюю, що українську «і» замінюють на відповідну букву в латиниці, проте чого ж тобі не замінюють «а», і інші схожі букви? Якщо хтось знає чому така штука відбувається — запрошую в коментарі, напишіть як це рішається і кого за це треба погладити по розумній головці.

А я поки рішатиму задачу наступним чином: зроблю додаткове поле sort_order (це не просто два слова, які стосуються до сортування, а переклад на англійську словосполучення «порядок сортування»), в якому цілими числами розставлю собі порядок, в якому я хочу сортувати сутності. Це буде безмежно круто, бо в майбутньому я зможу собі їх змінювати як захочу.

Такі діла. А взагальному я дуже приємно здивований з MongoDB.

P.S.: не я один такий недовольний. Бага в джирі монго.

Запам’ятай собі цей день нахуй

Нікагда, нікагда, сука, не забувай:

git svn fetch

Дістане з svn репозиторію нові бранчі.

Також, якщо ще колись інтегруватимеш фейсбук на чиїсть блядські сайти — читай це.

Знову маджента

Вкотре по долгу служби приходиться працювати з мадженто. Переконуюсь в хорошій реалізації неймспейсів срєдствами php5.2, звісно в 5.3 вони вже як то кажуть іскаропкі, але тут. Ну молодці вобщєм.

Шо би такого розказати вам за мадженто? А, вот. API в них є. Soap або XML-RPC. Звісно не кошерно, був би REST всьо би було па другому, але тут і це канає. Так ось, є кастомні модулі і їм теж потрібно дати API. Реалізується це напрочуд легко. Добавляєте свою api.xml в etc каталог модуля, переопреділяєте назви методів і вуалля. Мадженто дає вам можливість мапити API calls одразу на методи моделі. Звісно для цього потрібно створити окрему модель, бо якщо ви хочете мапити на реальні моделі, то це буде накладно. Детальніше нема сил розказувати. Хіба якось потім.

Також хочу зауважити, шо працюю з Enterprise версією мадженто (да-да, баблисто і жирно, доступ до самого коду коштує 10кілодоларів в рік). Enterprise фічі не дуже здивували і порадували, при достатній підготовці їх неважко накатати на звичайне Community edition. Потішило сильно тільки ахтоматична генерація CrossSells і подібних продуктів. Ну це таке.

Вобщєм, дякуємо українським розробникам (і мабуть не тільки українським) за хороший продукт.

Go back to top