1. Печать в терминал: проблема с кодировкой
Программа по умолчанию автоматически определяет кодировку терминала. Если вы столкнулись с проблемой кодировки, возможно, автоматическое определение не удалось. В этом случае можно попробовать вручную настроить кодировку вывода.
$client = Mojo::Weixin->new(log_encoding=>"utf8");
2. Как запустить несколько аккаунтов WeChat
Для лёгкого управления несколькими аккаунтами можно использовать Controller-API.
Если вы хотите просто запустить один или два аккаунта и не хотите или не можете использовать API, можно воспользоваться следующим методом:
Основная проблема при работе с несколькими аккаунтами заключается в необходимости сохранять данные каждого аккаунта в отдельном каталоге, чтобы избежать взаимного влияния.
При инициализации клиента предоставляется параметр account, который используется для настройки отдельного идентификатора для каждого входа в клиентское приложение WeChat. Этот параметр не является реальным аккаунтом WeChat и может быть свободно определён.
Код для каждого аккаунта сохраняется в отдельном файле pl, и устанавливается параметр account.
use Mojo::Weixin;
my $client = Mojo::Weixin->new(account=>"abc");
$client->load("ShowMsg");
$client->run();
use Mojo::Weixin;
my $client = Mojo::Weixin->new(account=>"def");
$client->load("ShowMsg");
$client->run();
Можно отдельно запускать файлы abc.pl и def.pl.
Или, если вы не хотите создавать много файлов pl, можно использовать только один код и передавать параметр account через переменную окружения MOJO_WEIXIN_ACCOUNT во время выполнения.
use Mojo::Weixin;
my $client = Mojo::Weixin->new(); #здесь не устанавливается параметр account, а берётся из переменной окружения
$client->load("ShowMsg");
$client->run();
3. Как использовать последнюю версию кода с GitHub для тестирования
Версии кода на GitHub обновляются часто, и стабильные версии регулярно упаковываются и публикуются на cpan (официальном репозитории Perl).
Через cpanm Mojo::Weixin можно загрузить или обновить последнюю стабильную версию онлайн. Если вам не терпится попробовать последний код на GitHub,
можно вручную загрузить последний исходный код с GitHub и добавить его в начало вашего файла xxxx.pl.
Используйте use lib 'путь к распакованному каталогу github/lib/' для указания на модуль Mojo::Weixin в этом каталоге вместо модуля, установленного через cpanm в других системных каталогах. Вот пример операции:
a. Загрузите последний zip-файл исходного кода https://github.com/sjdy521/Mojo-Weixin/archive/master.zip.
b. Распакуйте master.zip в указанный каталог, например, в корневую папку диска C: в Windows.
c. Добавьте use lib 'c:/Mojo-Weixin-master/lib';
в начале вашей программы на Perl.
d. Запустите программу как обычно.
#!/usr/bin/env perl
use lib 'c:/Mojo-Weixin-master/lib'; #указать путь загрузки модуля
use Mojo::Weixin;
my ($host,$port,$post_api);
$host = "0.0.0.0"; #адрес прослушивания интерфейса отправки сообщений, не изменять без необходимости
$port = 3000; #порт прослушивания интерфейса отправки сообщений, изменить на желаемый порт
#$post_api = 'http://xxxx'; #интерфейс получения сообщений для отчёта, удалить или закомментировать, если не требуется
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();
4. Ошибка «Can't locate Mojo/Weixin.pm in @INC»
Это означает, что модуль Mojo::Weixin не был успешно установлен. Обычно это происходит, когда процесс установки через cpanm Mojo::Weixin завершается неудачно из-за проблем с установкой других зависимых модулей.
Необходимо проверить, какие модули отсутствуют, и установить их. На Linux можно выполнить следующую команду для проверки установки модулей:
curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Weixin/master/script/check_dependencies.pl" |perl -
5. Проблемы с использованием после установки некорневым пользователем
Решение:
Метод 1: Переключитесь на пользователя root и установите снова.
Метод 2: Выполните следующие действия под учётной записью некорневого пользователя (без использования sudo перед каждой командой):
Установите модуль local::lib, выполнив команду:
cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
Добавьте соответствующие переменные среды в файл запуска, выполнив команду:
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >>~/.bashrc
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )