From 05375d9b1179a88aa1feed94e92d67d4c3961fe3 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Wed, 22 Jan 2020 22:53:13 +0100 Subject: [PATCH] Rewrite introduction documentation --- docs/_static/find-group-id.png | Bin 54873 -> 60318 bytes docs/intro.rst | 218 +++++++++++++-------------------- examples/session_handling.py | 42 +++++++ 3 files changed, 129 insertions(+), 131 deletions(-) create mode 100644 examples/session_handling.py diff --git a/docs/_static/find-group-id.png b/docs/_static/find-group-id.png index e19010d972183077e606d9342e477b4f528e0e39..b60f14314c2747d0ca89520e98d4203fd233b618 100644 GIT binary patch literal 60318 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

HU#vE>gd@qD-vr=t84s?vJmDOFeBC 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 diff --git a/docs/intro.rst b/docs/intro.rst index 46fa972..0e90837 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -1,194 +1,150 @@ -.. _intro: - Introduction ============ -``fbchat`` uses your email and password to communicate with the Facebook server. -That means that you should always store your password in a separate file, in case e.g. someone looks over your shoulder while you're writing code. -You should also make sure that the file's access control is appropriately restrictive +Welcome, this page will guide you through the basic concepts of using ``fbchat``. +The hardest, and most error prone part is logging in, and managing your login session, so that is what we will look at first. -.. _intro_logging_in: Logging In ---------- -Simply create an instance of `Client`. If you have two factor authentication enabled, type the code in the terminal prompt -(If you want to supply the code in another fashion, overwrite `Client.on_2fa_code`):: +Everything in ``fbchat`` starts with getting an instance of `Session`. Currently there are two ways of doing that, `Session.login` and `Session.from_cookies`. - from fbchat import Client - from fbchat.models import * - client = Client('', '') +The follow example will prompt you for you password, and use it to login:: -Replace ```` and ```` with your email and password respectively + import getpass + import fbchat + session = fbchat.Session.login("", getpass.getpass()) + # If your account requires a two factor authentication code: + session = fbchat.Session.login( + "", + getpass.getpass(), + lambda: getpass.getpass("2FA code"), + ) -.. note:: - For ease of use then most of the code snippets in this document will assume you've already completed the login process - Though the second line, ``from fbchat.models import *``, is not strictly necessary here, later code snippets will assume you've done this +However, **this is not something you should do often!** Logging in/out all the time *will* get your Facebook account locked! -If you want to change how verbose ``fbchat`` is, change the logging level (in `Client`) +Instead, you should start by using `Session.login`, and then store the cookies with `Session.get_cookies`, so that they can be used instead the next time your application starts. -Throughout your code, if you want to check whether you are still logged in, use `Client.is_logged_in`. -An example would be to login again if you've been logged out, using `Client.login`:: +Usability-wise, this is also better, since you won't have to re-type your password every time you want to login. - if not client.is_logged_in(): - client.login('', '') +The following, quite lengthy, yet very import example, illustrates a way to do this: -When you're done using the client, and want to securely logout, use `Client.logout`:: +.. literalinclude:: ../examples/session_handling.py - client.logout() +Assuming you have successfully completed the above, congratulations! Using ``fbchat`` should be mostly trouble free from now on! -.. _intro_threads: +Understanding Thread Ids +------------------------ -Threads -------- +At the core of any thread is its unique identifier, its ID. -A thread can refer to two things: A Messenger group chat (`Group`) or a single Facebook user (`User`). +A thread basically just means "something I can chat with", but more precisely, it can refer to a few things: +- A Messenger group thread (`Group`) +- The conversation between you and a single Facebook user (`User`) +- The conversation between you and a Facebook Page (`Page`) -Searching for group chats and finding their ID can be done via. `Client.search_for_groups`, -and searching for users is possible via. `Client.search_for_users`. See :ref:`intro_fetching` +You can get your own user ID with `Session.user_id`. -You can get your own user ID by using `Session.user_id` +Getting the ID of a specific group thread is fairly trivial, you only need to login to ``_, click on the group you want to find the ID of, and then read the id from the address bar. +The URL will look something like this: ``https://www.messenger.com/t/1234567890``, where ``1234567890`` would be the ID of the group. -Getting the ID of a group chat is fairly trivial otherwise, since you only need to navigate to ``_, -click on the group you want to find the ID of, and then read the id from the address bar. -The URL will look something like this: ``https://www.facebook.com/messages/t/1234567890``, where ``1234567890`` would be the ID of the group. -An image to illustrate this is shown below: +The same method can be applied to some user accounts, though if they have set a custom URL, then you will have to use a different method. + +An image to illustrate the process is shown below: .. image:: /_static/find-group-id.png :alt: An image illustrating how to find the ID of a group -The same method can be applied to some user accounts, though if they've set a custom URL, then you'll just see that URL instead +Once you have an ID, you can use it to create a `Group` or a `User` instance, which will allow you to do all sorts of things. To do this, you need a valid, logged in session:: -Here's an snippet showing the usage of thread IDs and thread types, where ```` and ```` -corresponds to the ID of a single user, and the ID of a group respectively:: + group = fbchat.Group(session=session, id="") + # Or for user threads + user = fbchat.User(session=session, id="") - user.send(Message(text='')) - group.send(Message(text='')) +Just like threads, every message, poll, plan, attachment, action etc. you send or do on Facebook has a unique ID. -Some functions don't require a thread type, so in these cases you just provide the thread ID:: +Below is an example of using such a message ID to get a `Message` instance:: - thread = fbchat.Thread(session=session, id="") - thread.set_color("#a695c7") - thread.set_color("#67b868") + # Provide the thread the message was created in, and it's ID + message = fbchat.Message(thread=user, id="") -.. _intro_message_ids: - -Message IDs ------------ - -Every message you send on Facebook has a unique ID, and every action you do in a thread, -like changing a nickname or adding a person, has a unique ID too. - -This snippet shows how to send a message, and then use the returned ID to react to that message with a 😍 emoji:: - - message = thread.send_text("A message!") - message.react("😍") - - -.. _intro_interacting: - -Interacting with Threads ------------------------- - -``fbchat`` provides multiple functions for interacting with threads - -Most functionality works on all threads, though some things, -like adding users to and removing users from a group chat, logically only works on group chats - -The simplest way of using ``fbchat`` is to send a message. -The following snippet will, as you've probably already figured out, send the message ``test message`` to your account:: - - user = User(session=session, id=session.user_id) - message_id = user.send(Message(text='test message')) - -You can see a full example showing all the possible thread interactions with ``fbchat`` by going to :ref:`examples` - - -.. _intro_fetching: - Fetching Information -------------------- -You can use ``fbchat`` to fetch basic information like user names, profile pictures, thread names and user IDs +Managing these ids yourself quickly becomes very cumbersome! Luckily, there are other, easier ways of getting `Group`/`User` instances. -You can retrieve a user's ID with `Client.search_for_users`. -The following snippet will search for users by their name, take the first (and most likely) user, and then get their user ID from the result:: +You would start by creating a `Client` instance, which is basically just a helper on top of `Session`, that will allow you to do various things:: - users = client.search_for_users('') - user = users[0] - print("User's ID: {}".format(user.id)) - print("User's name: {}".format(user.name)) - print("User's profile picture URL: {}".format(user.photo)) - print("User's main URL: {}".format(user.url)) + client = fbchat.Client(session=session) -Since this uses Facebook's search functions, you don't have to specify the whole name, first names will usually be enough +Now, you could search for threads using `Client.search_for_threads`, or fetch a list of them using `Client.fetch_threads`:: -You can see a full example showing all the possible ways to fetch information with ``fbchat`` by going to :ref:`examples` + # Fetch the 5 most likely search results + # Uses Facebook's search functions, you don't have to specify the whole name, first names will usually be enough + threads = list(client.search_for_threads("", limit=5)) + # Fetch the 5 most recent threads in your account + threads = list(client.fetch_threads(limit=5)) + +Note the `list` statements; this is because the methods actually return `generators `__. If you don't know what that means, don't worry, it is just something you can use to make your code faster later. + +The examples above will actually fetch `UserData`/`GroupData`, which are subclasses of `User`/`Group`. These model have extra properties, so you could for example print the names and ids of the fetched threads like this:: + + for thread in threads: + print(f"{thread.id}: {thread.name}") + +Once you have a thread, you can use that to fetch the messages therein:: + + for message in thread.fetch_messages(limit=20): + print(message.text) -.. _intro_sessions: +Interacting with Threads +------------------------ -Sessions --------- +Once you have a `User`/`Group` instance, you can do things on them as described in `ThreadABC`, since they are subclasses of that. -``fbchat`` provides functions to retrieve and set the session cookies. -This will enable you to store the session cookies in a separate file, so that you don't have to login each time you start your script. -Use `Client.get_gession` to retrieve the cookies:: +Some functionality, like adding users to a `Group`, or blocking a `User`, logically only works the relevant threads, so see the full API documentation for that. - session_cookies = client.get_gession() +With that out of the way, let's see some examples! -Then you can use `Client.set_gession`:: +The simplest way of interracting with a thread is by sending a message:: - client.set_gession(session_cookies) + # Send a message to the user + message = user.send_text("test message") -Or you can set the ``session_cookies`` on your initial login. -(If the session cookies are invalid, your email and password will be used to login instead):: +There are many types of messages you can send, see the full API documentation for more. - client = Client('', '', session_cookies=session_cookies) +Notice how we held on to the sent message? The return type i a `Message` instance, so you can interract with it afterwards:: -.. warning:: - You session cookies can be just as valuable as you password, so store them with equal care + # React to the message with the 😍 emoji + message.react("😍") +Besides sending messages, you can also interract with threads in other ways. An example is to change the thread color:: + + # Will change the thread color to the default blue + thread.set_color("#0084ff") -.. _intro_events: Listening & Events ------------------ -To use the listening functions ``fbchat`` offers (like `Client.listen`), -you have to define what should be executed when certain events happen. -By default, (most) events will just be a `logging.info` statement, -meaning it will simply print information to the console when an event happens +Now, we are finally at the point we have all been waiting for: Creating an automatic Facebook bot! -.. note:: - You can identify the event methods by their ``on`` prefix, e.g. ``on_message`` +To get started, you create your methods that will handle your events:: -The event actions can be changed by subclassing the `Client`, and then overwriting the event methods:: + def on_message(event): + print(f"Message from {event.author.id}: {event.message.text}") - class CustomClient(Client): - def on_message(self, mid, author_id, message_object, thread, ts, metadata, msg, **kwargs): - # Do something with message_object here - pass +And then you create a listener object, and start handling the incoming events:: - client = CustomClient('', '') + listener = fbchat.Listener.connect(session, False, False) -**Notice:** The following snippet is as equally valid as the previous one:: + for event in listener.listen(): + if isinstance(event, fbchat.MessageEvent): + on_message(event) - class CustomClient(Client): - def on_message(self, message_object, author_id, thread, **kwargs): - # Do something with message_object here - pass - - client = CustomClient('', '') - -The change was in the parameters that our ``on_message`` method took: ``message_object`` and ``author_id`` got swapped, -and ``mid``, ``ts``, ``metadata`` and ``msg`` got removed, but the function still works, since we included ``**kwargs`` - -.. note:: - Therefore, for both backwards and forwards compatibility, - the API actually requires that you include ``**kwargs`` as your final argument. - -View the :ref:`examples` to see some more examples illustrating the event system +View the :ref:`examples` to see some more examples illustrating the event system. diff --git a/examples/session_handling.py b/examples/session_handling.py new file mode 100644 index 0000000..d82a0dd --- /dev/null +++ b/examples/session_handling.py @@ -0,0 +1,42 @@ +# TODO: Consider adding Session.from_file and Session.to_file, +# which would make this example a lot easier! + +import atexit +import json +import getpass +import fbchat + + +def load_cookies(filename): + try: + # Load cookies from file + with open(filename) as f: + return json.load(f) + except FileNotFoundError: + return # No cookies yet + + +def save_cookies(filename, cookies): + with open(filename, "w") as f: + json.dump(f, cookies) + + +def load_session(cookies): + if not cookies: + return + try: + return fbchat.Session.from_cookies(cookies) + except fbchat.FacebookError: + return # Failed loading from cookies + + +cookies = load_cookies("session.json") +session = load_session(cookies) +if not session: + # Session could not be loaded, login instead! + session = fbchat.Session.login("", getpass.getpass()) + +# Save session cookies to file when the program exits +atexit.register(lambda: save_cookies("session.json", session.get_cookies())) + +# Do stuff with session here