WhatsApp является сейчас одним из самых популярных мессенджеров – не зря ее несколько лет назад купила всем известная Facebook. WhatsApp активно используется на смартфонах для реализации функций чата, обмена сообщениями и файлами, также существует и ее версия для персональных компьютеров. Однако "карманные" компьютеры Raspberry Pi не имеют официальной поддержки WhatsApp, поэтому чтобы задействовать функции этого мессенджера на Raspberry Pi, мы будем использовать специально разработанную для этого библиотеку на Python – Yowsup. Эта библиотека позволяет использовать ваш аккаунт WhatsApp и обмениваться сообщениями из вашего списка контактов. Фактически, она позволяет создать полностью готовый к использованию WhatsApp клиент на Raspberry Pi.
Ранее установка WhatsApp на Raspberry Pi с помощью библиотеки Yowsup была достаточно простым делом, но в последнее время этот процесс значительно усложнился. В данной статье мы постараемся подробно описать весь процесс установки и настройки WhatsApp на Raspberry Pi.
Для первоначальной настройки WhatsApp на Raspberry Pi нам понадобится помощь смартфона с установленной в него SIM картой, на котором вы используете свой аккаунт WhatsApp, но потом вы сможете использовать WhatsApp на Raspberry Pi не прибегая к помощи смартфона.
Также на нашем сайте вы можете прочитать про возможности работы платы Raspberry Pi с другими популярными сейчас мессенджерами и социальными сетями: Telegram и Twitter.
Необходимые компоненты
- Плата Raspberry Pi 2 или выше (купить на AliExpress).
- Рабочее соединение с сетью интернет.
Мы использовали протокол SSH для доступа к Raspberry Pi, вы можете использовать любой другой удобный вам способ.
Установка библиотеки Yowsup (WhatsApp) на Raspberry Pi
1. Первым делом установим последние обновления на плату Raspberry Pi – это хорошее правило перед установкой каких либо новых библиотек или пакетов на плату.
1 |
sudo apt-get update && sudo apt-get upgrade |
При установке обновлений нажимайте ‘y’ всегда, когда система будет делать запрос на подтверждение действия.
2. Установим необходимые компоненты для работы библиотеки Yowsup.
1 2 |
sudo apt-get install python-dev libncurses5-dev sudo apt-get install build-essential libssl-dev libffi-dev python-dev |
После этого еще установим пакеты криптографии (cryptography packages), которые необходимы для шифрования данных используемых в WhatsApp. Данные пакеты уже установлены в Raspberry Pi но, скорее всего, их версия не совпадает с той, которая необходима для библиотеки Yowsup. Поэтому установим данные пакеты с помощью команды:
1 |
pip install cryptography |
3. Скачаем библиотеку Yowsup с GitHub с помощью команды:
1 |
git clone git://github.com/tgalal/yowsup.git |
4. Перейдем в каталог yowsup с помощью команды cd yowsup и установим скачанную библиотеку с помощью команды:
1 |
sudo python setup.py install |
5. Теперь мы готовы к установке аккаунта WhatsApp. Но сначала проверим корректно ли установлена библиотека. Для этого выполним команду:
1 |
Yowsup-cli |
Если после этого вы увидите сообщения как на следующем скрине, то, значит, библиотека установлена корректно.
Установка аккаунта WhatsApp на Raspberry Pi
После установки WhatsApp на Raspberry Pi пришло время активировать и настроить аккаунт WhatsApp на Raspberry Pi.
1. Сохраните код страны (country code) “cc” и номер телефона в файле, чтобы библиотека Yowsup впоследствии смогла использовать эти данные для авторизации. Откройте редактор nano с помощью команды sudo nano config, запишите в нем необходимую информацию о коде страны и номере телефона и сохраните изменения в файле с помощью нажатия ctrl+x.
1 2 3 |
sudo nano config cc=91 phone=91xxxxxxxxxx |
В представленном коде номер страны 91 соответствует Индии, замените его на код своей страны. Также укажите свой номер телефона. Убедитесь в том, что введенный номер телефона не используется другим аккаунтом WhatsApp и SIM карта с этим номером вставлена в ваш телефон, потому что на следующем шаге вы получите на него код для регистрации (registration code).
2. После этого зарегистрируйте свой аккаунт WhatsApp с помощью команды:
1 |
yowsup-cli registration --config config --requestcode sms |
В результате выполнения этой команды вы должны получить в SMS на свой телефон шестизначный код.
3. Используйте полученный код для регистрации телефонного номера с помощью команды:
1 |
yowsup-cli registration --config config --register xxx-xxx |
Замените в этой команде xxx-xxx на код, который вы получили на свой телефон.
После этого спустя секунду или две вы получите ответ от WhatsApp в своем терминале Raspberry Pi как показано на следующем рисунке.
В этом ответе будет содержаться пароль для вашего WhatsApp. Идентификатор (ID), показанный стрелкой на рисунке выше, этот ваш пароль без двойных кавычек. Сохраните этот пароль в файле конфигурации (config file).
Откройте файл конфигурации с помощью редактора nano и вставьте в него этот идентификатор (id):
1 |
id=************************ |
Сконфигурируйте этот файл как показано на следующем рисунке. Сохраните его.
Запуск WhatsApp на Raspberry Pi
1. Теперь у нас все готово для запуска WhatsApp на Raspberry Pi. Выполните следующую команду:
1 |
yowsup-cli demos --yowsup --config config |
После этого вы должны получить ответ от WhatsApp показанный на следующем рисунке. Теперь нам необходимо залогиниться в WhatsApp. Введите “/L” и нажмите enter. Чтобы увидеть весь список доступных команд вы можете ввести /help.
Если вам не удалось залогиниться, то перезагрузите вашу плату Raspberry Pi.
2. После того как вы осуществили вход в систему (login), вы можете передавать и принимать сообщения.
Для передачи сообщения другому номеру WhatsApp выполните следующую команду:
1 |
/message send 91********** "Your message" |
В этой команде замените ********** на номер WhatsApp, которому вы хотите передать сообщение. Переданные и принимаемые сообщения будут отображаться в окне терминала как показано на следующем рисунке.
Таким образом, мы получили возможность использования платы Raspberry Pi в качестве WhatsApp клиента для передачи и приема сообщений от других номеров WhatsApp.
Не удалось добиться желаемого результата.
При попытке зарегистрировать аккаунт Whatsapp получен ответ:
status: fail
reason: old_version
login: 7XXXXXXXXXX
В статье эта часть ответа на скриншоте обрезана.
Разумеется никакой код на телефон не приходит.
К сожалению, правила сервисов типа Whatsapp часто меняются. Пока не могу ничем конкретным помочь по вашей проблеме. Можете попробовать вариант взаимодействия с Whatsapp, описанный в данной статье.