Must be subclassed by a plugin to set up various aspects of the XMPP
- class slidge.plugins.facebook.gateway.Gateway[source]#
Must be subclassed by a plugin to set up various aspects of the XMPP component behaviour, such as its display name or its registration process.
On slidge launch, a singleton is instantiated, and it will be made available to public classes such
.xmppattribute. Since it inherits from
slixmpp.componentxmpp.ComponentXMPP, this gives you a hand on low-level XMPP interactions via slixmpp plugins, e.g.:
self.send_presence( pfrom="email@example.com", pto="firstname.lastname@example.org", )
However, you should not need to do so often since the classes of the plugin API provides higher level abstractions around most commonly needed use-cases, such as sending messages, or displaying a custom status.
- COMPONENT_AVATAR = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Facebook_Messenger_logo_2018.svg/480px-...'[source]#
- SEARCH_INSTRUCTIONS = 'Enter something that can be used to search for one of your friends, eg, a first name'[source]#
- async validate(user_jid, registration_form)[source]#
Validate a registration form from a user.
Since XEP-0077 is pretty limited in terms of validation, it is OK to validate anything that looks good here and continue the legacy auth process via direct messages to the user (using
user_jid (slixmpp.JID) – JID of the user that has just registered
registration_form (dict[str, Optional[str]]) – A dict where keys are the
FormField.varattributes of the
- async validate_two_factor_code(user, code)[source]#
Called when the user enters their 2FA code.
Should raise the appropriate
XMPPErrorif the login fails
user (slidge.GatewayUser) – The gateway user whose registration is pending Use their
.bare_jidand/or``.registration_form`` attributes to get what you need
code – The code they entered, either via “chatbot” message or adhoc command