twitter2vk — из Твиттера во В Контакте



    twitter2vk — скрипт для автоматической перепубликации статусов из Твиттера во В Контакте. Например, если у вас остались старые друзья, которые никак не хотят уходить из В Контакте.

    Преимущества


    • Не хранит паролей, так что потеря файла настроек не будет столь страшна. В настройках хранятся только ID сессии В Контакте и данные для OAuth-входа в Твиттер. Особенно актуально для тех, кто использует один пароль для нескольких сервисов.
    • Поддерживает ретвиты — публикует во В Контакте статусы других пользователей, которые вы отретвитили.
    • Настройка формата статусов и ретвитов во В Контакте. Можно, например, заменять пользователей на ссылки на них или обрезать текст оставляя ссылку после него в полном виде: «Длинный текс… http//twitter.com/my/status/31337».
    • Правила исключения статусов. Можно указывать, какие статусы не будут перепубликоваться во В Контакте (например, ответы другим пользователям Твиттера).


    Установка


    В идеале скрипт надо установить на сервер, которые постоянно работает, например на VPS или домашний тихий медиа-сервер. Но можно использовать и рабочую машину, но тогда статусу будут перепубликоваться только, когда она включена (впрочем теряться они не будут).
    1. Ставим Ruby и его менеджер пакетов RubyGems (команда для Ubuntu/Debian):
      sudo aptitude install rubygems libopenssl-ruby ruby-dev
    2. Устанавливаем twitter2vk:
      sudo gem install twitter2vk
    3. Запускаем мастер для создания настройки и задачи для cron:
      twitter2vk

    Если вы запустите мастер настройки ещё раз и укажите уже созданный файл настроек, то мастер не будет их затирать, а только обновит свойства для входа во В Контакте и Твиттер.

    Мастер для создания настроек и скрипт перепубликации — разные пакеты, поэтому настройки можно создать на домашнем компьютере, а на сервера установить только скрипт перепубликации
    sudo gem install twitter2vk_reposter

    Чисто теоретически скрипт должен работать под Windows. Но тестировался только под ОС вида UNIX.

    Настройка


    Настройки сохранены в формате YAML, но он довольно прост.

    Формат статуса

    За формат статуса ответственны три свойства: format, retweet, last. В них можно использовать переменные:
    • %status% — текст статуса.
    • %url% — адрес статуса во Твиттере.
    • %author% — автор статуса. Имеет смысл использовать только в формате ретвита.

    Свойства format и retweet используются чтобы задавать вид обычного твитта и ретвитта, соответственно. После этого к ним добавится текст из last.

    Если полученный в итоге статус больше допустимого во В Контакте (160 символов), то обрезается сначала format или retweet. Поэтому в last удобно помещать ссылку на твит, чтобы она не обрезалась («Длинный текс… http//twitter.com/my/status/31337»).

    format: "%status%"
    retweet: "♺ %author%: %status"
    last: " %url%"

    Замены

    Перед публикацией во В Контакте скрипт может заменить нужные слова. Например, убрать # перед хеш-тегами или вместо user вывести ссылку http://twitter.com/user.

    Замены указываются в виде массива [паттер, результат] в массиве replace. Можно использовать регулярные выражения. Вместо массива можно использовать код :user_to_url для замены пользователей на ссылки.

    replace:
    - ["#nowplaying", "Сейчас играет: "]
    - [!ruby/regexp /#(\w)/, "\1"]
    - :user_to_url

    Пропуск статусов

    Скрипт использует чёрные и белый список паттернов, чтобы определить, публиковать ли очередной твит во В Контакте — exclude и include, соответственно. В них вы указываете строку или регулярное выражение, которое должно содержаться в тексте твита.

    Есть коды для популярных задач:
    • :reply — ответ другому пользователю Твиттера.
    • :retweet — ретвит.

    По умолчанию, twitter2vk не перепубликует ответы и твиты содержащие «#novk» (например, «Когда же все мои одногруппники поймут какой же В Контакте отстой #novk»).

    В белом списке по умолчанию «#vk», так что если вам надо чтобы твит был опубликован во В Контакте, несмотря на правила их exclude, то надо писать примерно так: « user Ты прав, В Контакте действительно серьёзно отстал от Facebook #vk».

    exclude:
    - :reply
    - "Facebook"
    - !ruby/regexp /\d\d\d\s?\$/
    include:
    - :retweet
    - "В Контакте"

    См. также


    • Страница на GitHub — исходники и публикация отчётов об ошибках.
    • @andrey_sitnik — твиттер автора, где публикуются обновления twitter2vk.
    • rvk — Ruby-библиотека для работы с В Контакте
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 25
    • +3
      был бы благодарен тому, кто сделал бы онлайновый сервис с этой штукой.
      • 0
        Онлайн-сервис не сделать так как: 1. нужно будет им сказать свой пароль; 2. В Контакте быстро заблокирует IP-адрес сервиса.
        • 0
          мдя действительно :( а у вконтактовских приложений есть доступ к статусам? может как в фейсбуке сделать?
          • 0
            Даже если у приложений и есть доступ к статусам, то они не могут менять его автоматически. Пользователь должен вручную их открыть. В Контакте очень просто :).
        • 0
          Все прокси не перебанить. Так, что только одна проблема.
          • 0
            Ну стабильный и полезный сервис на постоянной борьбе не сделать :). Но можете попытаться, скрипт свободный (только автора упомяните).
      • +1
        «среди своих простых друзей» — как звучит-то! 8)
        • +1
          Неплохая вообщем-то идея, жаль что я контактом только для переписки пользуюсь, и то редко.
          • 0
            Аналогично. Больше для старых друзей сделал.
            • 0
              … чтобы транслировать Твиты старым друзьям.
          • 0
            Очень СПАСИБО!!!
            • –5
              Twitter + ВКонтакте = вдвойне «фу», imho
              ну достала уже вся эта истерия с микросоциальным дрочерством, ей богу
              • +1
                Не пользуйтесь раз не нужно :-), это статья о конкретном инструменту, а не о преимуществах этих сетей. Лично для меня Твиттер — это не «микроблогинг», а инструмент для broadcast сообщений, а В Контакте лишь единственный канал связи для некоторых знакомых (мы же звоним по устаревшим телефонным линиями бабушке :-) ).
              • 0
                Блин, сколько этих скриптов развелось… ) И один грустнее другого по требованиям.

                Вот тогда мой синтез предыдущих рецептов — простая пыха, работает со стандартными модулями, пишет из vkontakte в twitter и наоборот в зависимости от новизны статуса.

                Никаких хэшей, и хитрых авторизаций — один хрен такие скрипты должны работать там, куда чужим доступ заказан. Я свой запустил на домашней машине.

                Получайте удовольствие.
                • 0
                  Скриптов много, поэтому я захотел сделать всё правильно :-). Чтобы был пакет с автоматическим обновлением из репозитория.
                • +1
                  Очень удобно на локальной машине! Спасибо!
                  Только вот у меня проблема, судя по всему дома и на работе от oauth твиттера возвращаються разные значения. В результате если я настроил его на работе, то дома он не работает ((
                  • 0
                    Есть просто решение. Настройте на одной машине, а потом перенесите файл настроек на другую. Тогда на обоих машина скрипт будет использовать один OAuth-ключ :).
                    • 0
                      У меня ноут. Если я запускаю скрипт установки на работе, то работает только на работе. Если конфигурю дома работает только дома… прям шаманство какое-то
                      • 0
                        А ноут на работе и дома один и тот же? Покажи файлы настроек, которые генерируются там (поставь звёздочки в первой половине vk_session, twitter_token, twitter_secret, чтобы проверить отличаются ли они).
                        • 0
                          Да один и тот же.
                          Файлы глянул все одинаковое, кроме сессии контакта, она отличаеться ((

                          • 0
                            Тогда почему «oauth твиттера возвращаються разные значения»? O_o

                            Хотя я кажется знаю в чём проблема :). Может скрипт на работе и дома имеют разные ID последних синхронизированных сообщений (там специальный файл имя_last_message)?
                            • 0
                              Поступил проще, настроил на работе и дома, сделал два разных файла настроек, в крон соотвественно две задачи, хоть одна но выполняеться )) Коряво, но должно работать! Спасибо что сделали возможность передавать файл настроек скрипту в качестве параметра!
                  • 0
                    Я постоянно сталкиваюсь с проблемой просроченных сессий, аля
                    /usr/lib64/ruby/1.8/open-uri.rb:182:in `open_loop': HTTP redirection loop
                    Issue закрыта, что можно сделать?
                    • 0
                      Проще всего подождать сильного и принципиального обновления twitter2vk :). Должно быть в этом или следующем месяце.

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