Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

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 example.pl 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/AOLIM.pm 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.


Comment on Re: Net::Aim (again)
Download Code
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";
      From Net::AIM:
      $aim->start()
          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...

      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); }

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (14)
As of 2014-12-18 15:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (58 votes), past polls