NAME
AnyEvent::XMPP::Ext::Registration - Handles all tasks of in band registration
SYNOPSIS
my $con = AnyEvent::XMPP::Connection->new (...);
$con->reg_cb (stream_pre_authentication => sub {
my ($con) = @_;
my $reg = AnyEvent::XMPP::Ext::Registration->new (connection => $con);
$reg->send_registration_request (sub {
my ($reg, $form, $error) = @_;
if ($error) {
# error handling
} else {
my $af = $form->try_fillout_registration ("tester", "secret");
$reg->submit_form ($af, sub {
my ($reg, $ok, $error, $form) = @_;
if ($ok) { # registered successfully!
$con->authenticate
} else { # error
if ($form) { # we got an alternative form!
# fill it out and submit it with C<submit_form> again
}
}
});
}
});
0
});
DESCRIPTION
This module handles all tasks of in band registration that are possible and specified by XEP-0077. It's mainly a helper class that eases some tasks such as submitting and retrieving a form.
METHODS
- new (%args)
-
This is the constructor for a registration object.
- connection
-
This must be a AnyEvent::XMPP::Connection (or some other subclass of that) object.
This argument is required.
- send_registration_request ($cb)
-
This method sends a register form request.
$cbwill be called when either the form arrived or an error occured.The first argument of
$cbis always$self. If the form arrived the second argument of$cbwill be a AnyEvent::XMPP::Ext::RegisterForm object. If an error occured the second argument will be undef and the third argument will be a AnyEvent::XMPP::Error::Register object.For hints how AnyEvent::XMPP::Ext::RegisterForm should be filled out look in XEP-0077. Either you have legacy form fields, out of band data or a data form.
See also try_fillout_registration in AnyEvent::XMPP::Ext::RegisterForm.
- send_unregistration_request ($cb)
-
This method sends an unregistration request.
For description of the semantics of the callback in
$cbplase look in the description of thesubmit_formmethod below. - send_password_change_request ($username, $password, $cb)
-
This method sends a password change request for the user
$usernamewith the new password$password.For description of the semantics of the callback in
$cbplase look in the description of thesubmit_formmethod below. - submit_form ($form, $cb)
-
This method submits the
$formwhich should be of type AnyEvent::XMPP::Ext::RegisterForm and should be an answer form.$conis the connection on which to send this form.$cbis the callback that will be called once the form has been submitted and either an error or success was received. The first argument to the callback will be the AnyEvent::XMPP::Ext::Registration object, the second will be a boolean value that is true when the form was successfully transmitted and everything is fine. If the second argument is false then the third argument is a AnyEvent::XMPP::Error::Register object. If the error contained a data form which is required to successfully make the request then the fourth argument will be a AnyEvent::XMPP::Ext::RegisterForm which you should fill out and send again withsubmit_form.For the semantics of such an error form see also XEP-0077.
AUTHOR
Robin Redeker, <elmex at ta-sa.org>, JID: <elmex at jabber.org>
COPYRIGHT & LICENSE
Copyright 2007, 2008 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.