Denis Gladkikh
Russian   |  English

Выбранный тег: Twitter

Немного кода, небольшой рефакторинг

Изучал тут как-то примеры книги Professional Twitter Development: With Examples in .NET 3.5, хотел разобраться как работает эта самая OAuth авторизация для твиттера. Раньше у меня на сайте было немного действий с твиттером, подгружались мой твитты, хранились, отображались, но потом твиттер что-то поменял в авторизации, вроде разрешил только OAuth, а в тот момент я что-то не шибко разобрался с этим OAuth, да и времени не было, хотя вроде еще тогда LinqToTwitter ее поддерживал (а я использовал именно эту библиотеку). В общем-то, просто в тот момент подумал, что тема OAuth авторизации интересна, и нужно бы посмотреть как она реализована в деталях попозже. Вот и набрел я тут недавно на книгу Professional Twitter Development: With Examples in .NET 3.5, точнее только на ее примеры, решил поковыряться. Код там был не из простых, и я просто тупо стал рефакторить его, чтобы разобрать что и как работает. Вот, например, одно из превращений, которое я уже правда публиковал в твиттере давно (и может быть вы уже видели):



Регулярные выражения. Вспоминаем, пишем, тестируем.

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



Linq To Twitter: Считаем слова, хеш-теги и собеседников сами

Недавно в сети начала гулять ссылка на проект http://tweetcloud.icodeforlove.com/, который мог подсчитать количество используемых слов в ваших сообщениях в twitter и нарисовать некий граф. Но у данного проекта было несколько больших недостатков: русские слова не считались, после подсчета он писал в tweet – спамил про себя. Может быть и еще какие то недостатки: первых двух мне хватило, чтобы не лезть смотреть этот проект. Но, вспомним чудесный продукт LinqToTwitter, о котором я уже как то писал в своем блоге. Ну и понятно, что подсчитать количество слов не составит особого труда.

Потому, берем WPF + LinqToTwitter, пару вечеров и наше облако тегов готово:

Capture

Сразу скажу, что пока писал меня вроде пару раз забанили на TwitterAPI (с ним, вроде, должен работать LinqToTwitter), я добавил Thread.Sleep(200) в промежутки запросов, чтобы хоть как то разгрузить, но проблемы остались – бывают реже, но бывают, так что учтите (не увлекайтесь). После бана около суток не будут работать клиенты. У меня 800 твиттов грузятся и обрабатываются около минуты, время рассчитайте сами – сколько вам потребуется, чтобы подсчитать ваши слова.



Интегрируемся с Twitter

Давайте сначала обозначим, что такое Twitter.

Twitter – это бесплатный интернет-сервис, представляющий собой систему микроблогов, позволяющий пользователям отправлять короткие текстовые заметки (до 140 символов), используя веб-интерфейс, SMS, службы мгновенных сообщений или сторонние программы-клиенты (http://ru.wikipedia.org).

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

Итак, если у вас есть некий интернет магазин, или сайт компании, на котором вы публикуете новости, то можно создать и twitter аккаунт, для того, чтобы дублировать туда информацию о выходе новых публикаций на сайте (как новости, так и поступление новой продукции), или вы можете прикрутить к своему блогу возможность публиковать в твиттере информацию о поступлении новых топиков (есть готовые сервисы, как http://twittsync.com/, работает на Microsoft Azure). Так же можно использовать твиттер “не по назначению” – вы можете создать некий пустой аккаунт, который будет публиковать, к примеру, состояние вашего компьютера, через Direct Message на ваш аккаунт или просто к себе на главную – один из примеров: ваш провайдер требует деньги за белый IP адрес, в противном случае он назначает вам адрес динамически, и каждые 24 часа вас отрубает (это для тех, кто использует роутеры) и вы хотите в любое время (например, с работы) узнавать какой у вас IP адрес для того чтобы зайти на свой домашний компьютер удаленно.

Следующий вопрос, сложно ли это сделать?

Легко! Можно пойти немного по более сложному пути и изучать TwitterAPI самому, тогда вам ни от чего не нужно будет зависеть, для начала тогда нужно воспользоваться статьей – Michael C. Kennedy – Building a Twitter Application in .NET, путь попроще – использовать готовое решение LINQ to Twitter (я им и воспользуюсь).