Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: Net::Aim (again)

by sutch (Curate)
on Apr 12, 2003 at 15:11 UTC ( #250057=note: print w/replies, xml ) Need Help??

in reply to Net::Aim (again)

Your title is incorrect, it should be Net::AOLIM instead of Net::AIM.

When executing that is included with Net::AOLIM, I get the following error:

Use of uninitialized value in array dereference at /usr/lib/perl5/site +_perl/5.6.1/Net/ line 946, <> line 2.
Maybe AOL has made some change to the protocol.

I've been able to use Net::AIM without too many problems. You may want to try that package instead.

Replies are listed 'Best First'.
Re: Re: Net::Aim (again)
by Anonymous Monk on Apr 12, 2003 at 16:21 UTC
    I was hesitant to use Net::Aim due to the lack of information on the cpan module page. With AOLIM atleast they should examples of how to use it.

    In any case, I implemented a fast copy using Net::Aim and I'm getting an error :PARSE: How many args in ' 2'?

    The script hangs after "Login Successful". Any suggestions?

    #!/usr/bin/perl use strict; use warnings; use Net::AIM; my $aim; my $conn; print "Subject's name:"; chomp(my $destuser = <STDIN>); print "Message:"; chomp(my $message = <STDIN>); print "Starting Net::Aim\n"; $aim = new Net::AIM; print "Connecting with loging crudentials\n"; $conn = $aim->newconn(Screenname => 'wfgs343R', Password => 'iamcool'); print "Login sucessfull!\n"; $aim->start; print "Beginning AIM\n"; $aim->send_im($destuser, $message); print "Message sent.\n";
      It's been a while since I've done anything useful with Net::AIM, but I remember that it needs to handle some config events before any messages can be sent. I also noticed that AIM will not send messages if the connection is closed too soon (thus the sleep).

      This code below does the job. DEBUG is on to show some useful information, but I'd also suggest adding some print statements to gain an even better understanding of how Net::AIM functions.

      #!/usr/bin/perl use strict; use Net::AIM; sub DEBUG() { 1 } my $aim = new Net::AIM; $aim->debug(1) if (DEBUG); # provides helpful information $aim->newconn( Screenname => 'my_name', Password => 'my_password' ) or + die "Can't connect to AIM server.\n"; my $conn = $aim->getconn(); $conn->set_handler('config', \&on_config); $aim->set('config_done', 0); my $done = 0; while (! $done) { $aim->do_one_loop(); if ($aim->get('config_done')) { $aim->send_im('my_buddy', 'my_message'); sleep 5; $done = 1; } else { $aim->do_one_loop(); } } sub on_config { my ($self, $evt, $from, $to) = @_; my $str = shift @{$evt->args()}; $self->set_config_str($str, 1); $self->send_config(); $self->set('config_done', 1); }
      From Net::AIM:
          This just starts an infinte loop of $aim->do_one_loop;
      If you take out the $aim->start;, your script should work.

      Update Hmm, just tried it and it doesn't work. You might need to set some type of handler to send the message and then do the $aim->start...

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://250057]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (1)
As of 2021-10-17 14:00 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (71 votes). Check out past polls.