Программа по умолчанию автоматически определяет кодировку консоли. Если вы видите неправильные символы, возможно, произошла ошибка при автоматическом определении кодировки. В этом случае попробуйте установить кодировку вручную.
$client = Mojo::Webqq->new(log_encoding => "utf8");
Используйте Controller-API для удобной работы с несколькими аккаунтами.
Если вам требуется просто запустить один или два аккаунта без использования API, воспользуйт Yöntem:
Основная проблема при использовании нескольких аккаунтов заключается в необходимости хранения cookie и других данных каждого аккаунта в отдельных директориях, чтобы избежать взаимного влияния.
Когда вы инициализируете клиентскую часть, можно указать параметр account
для уникальной идентификации каждого клиента. Этот параметр не является реальным номером QQ и может быть свободно выбран.
Каждый аккаунт следует сохранять в отдельном pl-файле и указывать параметр account
.
use Mojo::Webqq;
my $client = Mojo::Webqq->new(account => "abc");
$client->load("ShowMsg");
$client->run();
use Mojo::Webqq;
my $client = Mojo::Webqq->new(account => "def");
$client->load("ShowMsg");
$client->run();
Для запуска используйте команды perl для каждого файла.Либо если вам не хочется иметь множество пл-файлов, вы можете использовать одну программу и передавать параметр account через переменные окружения MOJO_WEBQQ_ACCOUNT при запуске программы.
use Mojo::Webqq;
my $client = Mojo::Webqq->new(); # Здесь параметр account не указан, а берётся из переменной окружения
$client->load("ShowMsg");
$client->run();
Код на GitHub постоянно обновляется, поэтому стабильные версии регулярно пакуются и загружаются на CPAN (официальный Perl-репозиторий).
Через cpanm Mojo::Webqq
вы можете скачать или обновить стабильную версию с CPAN. Если вы хотите протестировать самую новую версию кода с GitHub,
вы можете самостоятельно скачать последний исходный код и указать его использование в вашем xxxx.pl
файле.
Это делается путём указания пути к модулю Mojo::Webqq через use lib 'github_источник/разархивированная_папка/lib/'
.
Пример шагов:
a. Скачивание zip-архива с последним исходным кодом https://github.com/sjdy521/Mojo-Webqq/archive/master.zip
b. Распаковка master.zip в нужную директорию, например, на Windows в корневой каталог C:\
c. В начале вашего perl-программы добавьте use lib 'c:/Mojo-Webqq-master/lib';
d. Просто выполните вашу программу.
#!/usr/bin/env perl
use lib 'c:/Mojo-Webqq-master/lib'; # Указывает путь для загрузки модулей
use Mojo::Webqq;
my ($host, $port, $post_api);
``````markdown
\$host = "0.0.0.0"; # Address for listening to incoming messages, do not change unless necessary
\$port = 5000; # Port for listening to incoming messages, set your desired port
# \$post_api = 'http://xxxx'; # URL for receiving notifications about message delivery, remove or comment out this line if it is not required
Здесь используется формат Markdown для комментариев внутри кода.```markdown my $client = Mojo::Webqq->new(log_level=>"info",http_debug=>0); $client->load("ShowMsg"); $client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api}); $client->run();
### 4. Почему в логах часто появляется сообщение "504 Gateway Time-out"?
Вы можете заметить множество таких сообщений в логах:
`[17/01/09 16:55:45] [warn] http://d1.web2.qq.com/channel/poll2 запрос завершился ошибкой: Yöntem Timeout`
Это связано с проблемами официальных интерфейсов Tencent, даже при использовании веб-браузера для доступа к w.qq.com вы столкнетесь с этим.
К счастью, эта ошибка не влияет на прием сообщений, поэтому её можно игннорировать.
### 5. Как долго может быть активной учетная запись после сканирования QR-кода?
Исходя из ограничений сервера Tencent, учетная запись остается активной около 1-2 дней после успешного сканирования QR-кода. После истечения этого времени вам потребуется повторно сканировать QR-код для входа.
Плагин `Openqq` отслеживает событие `input_qrcode`.
Также можно использовать плагин `PostQRcode`, чтобы отправлять QR-код на указанный электронный адрес для его сканирования в любое время и любом месте.
### 6. Как получить JSON данные, отправленные плагином Openqq через PHP?
Учитывая, что отправленные JSON данные имеют тип `application/json`, а не `application/x-www-form-urlencoded`, использование обычного метода `$_POST` не будет работать (`$_POST` предназначен для данных вида a=1&b=2&c=3).
Для получения данных используйте `$GLOBALS['HTTP_RAW_POST_DATA']` для прямого получения сырого JSON-данных из HTTP-запроса.
```Или используйте `$http_request_body = file_get_contents('php://input');`
Затем используйте функцию `json_decode` для преобразования JSON-строки в соответствующую структуру данных PHP.
Справочные материалы PHP:
<http://us3.php.net/manual/en/function.json-decode.php>
<http://us3.php.net/manual/en/reserved.variables.httprawpostdata.php>
#### 7. Проблема с отображением символов в Screen
Решение: Включите режим UTF-8, добавив ключ `-U` перед другими командами, как показано ниже:
```bash
screen -U -S test
screen -U -r xxx
Класс Mojo::Webqq
предоставляет соответствующие конфигурационные параметры в методе new
, подробнее см. документацию.
По умолчанию cookies пользователей сохраняются в директории /tmp
. При возникновении проблем с входом необходимо удалить соответствующие файлы в этой директории.
Пример изменения конфигурации:
Создайте две директории msg
и cookie
.
Измените скрипт запуска следующим образом:
use POSIX;
my $date = strftime("%Y%m%d", localtime());
my $client = Mojo::Webqq->new(
ua_debug => 0, # Отладочная информация
log_level => "info", # Уровень журналирования
is_update_group => 0,
is_update_discuss => 0,
log_path => "msg/qqmsg-$date",
tmpdir => "cookie",
login_type => "qrlogin", # "qrlogin" — вход через QR-код
);
Таким образом, сообщения будут сохраняться в директории msg
, а файлы сессии и QR-коды — в директории cookie
. Для просмотра новых сообщений можно использовать команду tail -f qqmsg-20171204
.#### 9. Отправка QR-кода на электронную почту
Для отправки QR-кода на электронную почту используйте модуль PostQRcode
. Также установите необходимый модуль Mojo::SMTP::Client
при помощи команды cpanm Mojo::SMTP::Client
.
Добавьте следующую конфигурацию в раздел плагинов вашего скрипта запуска:
$client->load("PostQRcode", data => {
smtp => 'smtp.ijz.me', # Адрес SMTP сервера
port => '25', # Номер порта SMTP сервера
from => 'mojoqq@ijz.me', # Адрес отправителя
to => '10010@qq.com', # Адрес получателя
user => 'mojoqq@ijz.me', # Логин SMTP сервера
pass => 'Mojo-Webqq123',
tls => 0, # Использование протокола SMTPS (по умолчанию 0)
});
Заполните адреса отправителя и получателя реальными данными.
Это указывает на то, что модуль Mojo::Webqq
не был успешно установлен. Обычно это происходит из-за ошибок при установке зависимых модулей во время выполнения команды cpanm Mojo::Webqq
.
Необходимо проверить, какие модули отсутствуют. На Linux вы можете использовать следующую команду для проверки наличия модулей и исправления ситуации:
curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl" | perl -
Решение:
Метод 1: Перейти в аккаунт root и переустановить.
Метод 2: Выполнить следующие действия в аккаунте без прав root (не используйте sudo перед любыми командами):1) Установите модуль 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
Возможной причиной является то, что метод аутентификации через имя пользователя и пароль требует ввода капчи при значительном изменении местоположения, что затрудняет автоматизацию процесса.
Чтобы избежать этой проблемы, рекомендуется использовать браузер для входа в http://qun.qq.com из сети, где находится ваш скрипт pl
, чтобы сервер Tencent отменил определение вашего входа как незаконного.
Вы можете создать SSH-тоннели, SOCKS5-прокси, HTTP-прокси с поддержкой SSL-перенаправления (метод CONNECT), затем использовать браузер для доступа через прокси-сервер.
Ссылка на issue: https://github.com/sjdy521/Mojo-Webqq/issues/183
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )