Использование Perl-языка для написания клиентского фреймворка Weixin на основе Mojolicious требует версии Perl 5.10 или выше. Через плагины обеспечивается поддержка HTTP API, который может быть использован другими языками или системами.
Серьёзное заявление
Этот проект полностью соответствует исходным функциям, предоставленным Weixin, и не включает никаких действий, таких как взлом, кража личных данных и т. д. Проект является полностью открытым исходным кодом, целью которого является содействие техническому обмену и обучению. Запрещается любое незаконное использование, которое может нанести вред государству, предприятиям или отдельным лицам, в противном случае ответственность лежит на пользователе.
Особенности:
Список плагинов:
Название | Приоритет | Текущее состояние | Автор GitHub | Описание функции |
---|---|---|---|---|
ShowMsg | 100 | Выпущено | sjdy521 | Печать полученных и отправленных сообщений |
IRCShell | 99 | Выпущено | sjdy521 | Использование Weixin через IRC-клиент в среде Linux |
Openwx | 98 | Выпущено | sjdy521 | Предоставление API для отправки сообщений Weixin |
Beauty | 95 | Выпущено | sjdy521 | Распознавание ключевых слов для отправки изображений красивых женщин |
Translation | 93 | Выпущено | sjdy521 | Многоязычная функция перевода |
KnowledgeBase | 2 | Выпущено | sjdy521 | Создание базы знаний вопросов и ответов через сообщения Weixin |
AutoVerify | 1 | Выпущено | sjdy521 | Автоматическое одобрение запросов на подтверждение дружбы при получении |
PostQRcode | 0 | Выпущено | sjdy521 | Отправка QR-кода для входа на электронную почту для удалённого сканирования |
UploadQRcode | 0 | Выпущено | sjdy521 | Загрузка QR-кодов на фотохостинг для доступа через Интернет |
XiaoiceReply | 1 | Выпущено | sjdy521 | Интеграция с Microsoft Xiaoice для интеллектуального ответа в чате |
ShowQRcode | 0 | Выпущено | sjdy521 | Просмотр QR-кодов с помощью системного приложения для просмотра изображений (в настоящее время поддерживается только Windows) |
SmartReply | 0 | Выпущено | sjdy521 | Интеллектуальный ответ в чате |
Дополнительные плагины см. в полном списке плагинов.
Демонстрация эффекта:
Достаточно ввести одну команду, чтобы запустить интеллектуального чат-бота. И Perl, и вы оба так элегантны. Наслаждайтесь!
cpanm Mojo::Weixin && perl -MMojo::Weixin -e "Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()"
[16/01/19 23:10:49] [info] 客户端准备登录...
[16/01/19 23:10:50] [info] 清除残留的历史二维码图片
[16/01/19 23:10:30] [info] 二维码已下载到本地[ /tmp/mojo_weixin_qrcode.jpg ]
[16/01/19 23:11:20] [info] 等待手机微信扫描二维码...
[16/01/19 23:12:09] [info] 手机微信扫码成功,请在手机微信上点击 [登录] 按钮...
[16/01/19 23:12:10] [info] 正在进行登录...
[16/01/19 23:12:10] [info] 微信登录成功
[16/01/19 23:13:40] [info] 获取联系人信息...
[16/01/19 23:13:40] [info] 更新个人信息成功
[16/01/19 23:14:41] [info]
``` **Обновление информации о друзьях успешно**
[16/01/19 23:15:42] [info] Обновление информации о группах «[红包群]» успешно
[16/01/19 23:15:42] [info] Обновление информации о группе «[Perl语言交流]» успешно
[16/01/19 23:15:42] [info] Начинаю получать сообщения...
[16/01/19 23:15:00] [群消息] Маленький Хэй | Perl语言交流: Mojo::Weixin неплох, да.
[16/01/19 23:15:58] [群消息] Я -> Perlязыкoвый обмен: большое спасибо!
+-------------------+ +----------------+
| Tencent | | Any IRC Client |
| Weixin Server | | wechat、irssi |
+---v-------------^-+ +-v------------^-+
| | | |
| 微信协议交互| |IRC协议交互 |
+-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+
| +---v-------------^--+ +----v------------^-+ |
| | <——————————————————< | |
| | Weixin Client | Weixin - IRC | IRC Server | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+

#### Дополнительные примеры использования см. в [Mojo-Weixin作品展](Collection.md)
### Установка
Рекомендуется использовать [cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm) для установки модуля [Mojo::Weixin](https://metacpan.org/pod/distribution/Mojo-Weixin/doc/Weixin.pod) онлайн. Если вы используете Docker, см. [Docker镜像安装及使用方法](Docker.md).
1. *Установка Perl*
Перед установкой убедитесь, что ваш компьютер уже не имеет предустановленной версии Perl (кроме Windows). В большинстве систем Perl версии 5.10.1 или выше предустановлен. Рекомендуется версия 5.14 или выше.
На официальном сайте Perl есть подробные инструкции по установке для различных платформ: Unix/Linux, Mac OS X и Windows.
Для пользователей Linux рекомендуется использовать инструмент [perlbrew](https://perlbrew.pl/) для обновления версии Perl, если она ниже требуемой.
|Платформа |Рекомендованный выбор |Ссылка для скачивания |
|:-------|:--------|:---------------|
|Windows |1. **StrawberryPerl**<br>2. ActivePerl<br>3. **Mojo-StrawberryPerl**|[StrawberryPerl скачать](http://strawberryperl.com/)<br>[Mojo-StrawberryPerl скачать](https://github.com/sjdy521/Mojo-StrawberryPerl)<br>[ActivePerl скачать](http://www.activestate.com/activeperl/downloads)<br>|
|Linux |1. **Системный пакет**<br>2. **yum/apt и другие менеджеры пакетов**<br>3. Официальный исходный код компиляции<br>4. ActivePerl<br>5. DWIM-Perl|[ActivePerl скачать](http://www.activestate.com/activeperl/downloads)<br>[DWIM-Perl скачать](http://dwimperl.com/linux.html)|
|Mac |1. **Системный пакет**<br>2. ActivePerl|[ActivePerl скачать](http://www.activestate.com/activeperl/downloads)|
Обратите внимание:
[Mojo-StrawberryPerl](https://github.com/sjdy521/Mojo-StrawberryPerl) — это упрощённая версия StrawberryPerl, предназначенная для работы с Windows 32-битными и 64-битными системами.
2. *Установите cpanm (если он уже установлен, этот шаг можно пропустить)*
Способ a: Установите cpanm с помощью команды cpan:
$ cpan -i App::cpanminus
Способ b: Установите cpanm напрямую:
$ curl -kL http://cpanmin.us | perl - App::cpanminus
Если сервер недоступен, можно попробовать использовать следующий адрес:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
3. *Используйте cpanm для установки Mojo::Weixin онлайн (если модуль уже установлен, эта команда обновит его)*
$ cpanm Mojo::Weixin
Если установка не удалась, возможно, вам помогут следующие решения:
Во время установки Mojo::Weixin cpan или cpanm автоматически устанавливают множество других зависимых модулей.
Одной из наиболее распространённых проблем при установке является IO::Socket::SSL.
IO::Socket::SSL в основном обеспечивает поддержку https, и его компиляция может потребоваться во время установки.
Пользователи Linux обычно используют метод компиляции для установки, но если система не имеет необходимых условий для компиляции, это может привести к сбою.
Пользователям Windows рекомендуется использовать готовые среды выполнения Perl, такие как strawberryperl или activeperl, поскольку они включают основные зависимые модули Mojo::Weixin. **Как использовать**
1. *Я хорошо знаком с Perl, я профессиональный Perl-разработчик.*
Данный проект представляет собой чистый Perl-модуль, который уже был опубликован на cpan. Пожалуйста, внимательно прочитайте документацию по использованию модуля Mojo::Weixin (https://metacpan.org/pod/distribution/Mojo-Weixin/doc/Weixin.pod).
Кроме того, вы можете посмотреть каталог demo для получения дополнительных примеров кода.
2. *Я не знаком с Perl и являюсь разработчиком на другом языке, меня интересуют только предоставленные интерфейсы для отправки и получения сообщений.*
Вы можете сохранить следующий код в файле с исходным кодом (обязательно используя кодировку UTF8), а затем запустить его с помощью интерпретатора Perl:
#!/usr/bin/env perl
use Mojo::Weixin;
my ($host,$port,$post_api);
$host = "0.0.0.0"; #адрес для прослушивания сообщений, не изменяйте без необходимости
$port = 3000; #порт для прослушивания сообщений, измените на желаемый порт
#$post_api = 'http://xxxx'; #URL для отправки сообщений, удалите или закомментируйте, если не требуется
my $client = Mojo::Weixin->new(log_level=>"info",http_debug=>0);
$client->load("ShowMsg");
$client->load("Openwx",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->run();
Сохраните вышеуказанный код в файл xxxx.pl, а затем запустите его с помощью команды «perl xxxx.pl». Это позволит вам войти в систему WeChat и создать HTTP-сервер, прослушивающий указанный адрес и порт на вашем компьютере.
$ perl xxxx.pl
Пример вызова интерфейса для отправки сообщения другу:
http://127.0.0.1:3000/openwx/send_friend_message?id=xxxx&content=hello
* About to connect() to 127.0.0.1 port 3000 (#0)
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)
> GET /openwx/send_friend_message?id=xxxxx&content=hello HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 127.0.0.1:3000
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json;charset=UTF-8
< Date: Sun, 13 Dec 2015 04:54:38 GMT
< Content-Length: 52
< Server: Mojolicious (Perl)
<
* Connection #0 to host 127.0.0.1 left intact
{"status":"успешная отправка","id":23910327,"code":0}
Дополнительные параметры интерфейса см. в документации Openwx (API.md).
3. *Я хакер, и я хочу иметь возможность управлять WeChat через IRC-канал из командной строки.*
Пожалуйста, ознакомьтесь с инструкциями по использованию плагина IRCShell (IRC.md).
**Основные зависимости**
* [Mojolicious](https://metacpan.org/pod/Mojolicious)
* [Encode::Locale](https://metacpan.org/pod/Encode::Locale)
**Документация**
* Журнал изменений (Changes)
* Документация по разработке и конфигурации (doc/Weixin.pod)
* HTTP-документация API (API.md)
* FAQ (FAQ.md)
**Официальные каналы общения**
* QQ-группа (http://jq.qq.com/?_wv=1027&k=kjVJzo)
* IRC (http://irc.perfi.wang/?channel=#Mojo-Webqq)
**Ссылки на дружественные проекты**
JavaScript
* [Wechaty](https://github.com/zixia/wechaty) Wechaty — это WeChat для ботов на JavaScript (ES6). Это фреймворк/библиотека для персональных аккаунтов.
* [Wechatircd](https://github.com/MaskRay/wechatircd) Используйте IRC-клиент для управления веб-версией WeChat.
* [Weixinbot](https://github.com/feit/Weixinbot) Nodejs-обёртка для веб-версии WeChat, позволяющая программировать управление сообщениями WeChat.
Python
* [WeixinBot](https://github.com/Urinx/WeixinBot) Веб-версия WeChat API, включая терминальную версию WeChat и WeChat-ботов. Всего 30 строк кода, чтобы настроить персонального бота.
* [ItChat](https://github.com/littlecodersh/ItChat) Интерфейс для личного аккаунта WeChat, WeChat-боты и командная строка WeChat.
**Пожертвования**
Вы можете поддержать проект, отсканировав QR-код для оплаты через Alipay. Спасибо за вашу поддержку и вдохновение!

Особая благодарность предыдущим спонсорам (https://github.com/sjdy521/Mojo-Thanks).
**Авторские права и лицензия**
Авторское право (C) 2014 sjdy521
Эта библиотека является свободным программным обеспечением; вы можете распространять её и/или изменять её под лицензией BSD 2-clause «Упрощённая» (LICENSE).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )