私はMatrixサーバに接続するボットを作成しています。そのために私はNet::Async::Matrixを使用します。Perl:祝福されたオブジェクトの問題
コード:
#!/usr/bin/perl
use strict;
use warnings;
use Net::Async::Matrix;
use Net::Async::Matrix::Utils qw (parse_formatted_message);
use IO::Async::Loop;
use Data::Dumper;
my $loop = IO::Async::Loop->new;
my $matrix = Net::Async::Matrix->new(
server => 'matrix.server.net',
on_error => sub {
my (undef, $message) = @_;
warn "error: $message\n";
},
);
$loop->add($matrix);
$matrix->login(
user_id => '@bot:matrix.server.net',
password => 'password',
)->get;
my $room = $matrix->join_room('#Lobby:matrix.server.net')->get;
$room->configure(
on_message => sub {
my (undef, $member, $content, $event) = @_;
my $msg = parse_formatted_message($content);
my $sendername = $member->displayname;
print Dumper $sendername;
&sendmsg("$sendername said: $msg");
},
);
my $stream = $matrix->start;
sub sendmsg {
my $input = shift;
if ($input) {
$room->send_message(
type => "m.text",
body => $input,
),
}
}
$loop->run;
基本的に、私は、ボットが言われたエコーします。
私は、次のような出力を得る:
$ VAR1 = 'm1ndgamesを'; Longpollに失敗しました - オブジェクト 'm1ndgamesが見つかりました :test'、allow_blessed、convert_blessedも allow_tags設定が有効(またはTO_JSON/FREEZEメソッドがありません) /usr/local/share/perl/5.24.1/Net/Async/Matrix.pm行292
と私はそれを理解していません。体にtest
のような文字列を入力すると、部屋に送られます。
おかげで
交換してください!これが原因でした! – m1ndgames