This repository has been archived on 2025-07-31 . You can view files and clone it, but cannot push or open issues or pull requests.
a76ebbb22aa1bfc6568db1619d652d1816797c82
- Reworked events, so now they support python 2.7 (I had to remove some functionality though, but that was a little unnecessary anyway) - Events now support the old style of writing, for people who's more comfortable with that: ```python class EchoBot(fbchat.Client): def onMessage(self, *args, **kwargs): self.something(*args, **kwargs) ``` While still supporting the new method: ```python class EchoBot(fbchat.Client): def __init__(self, *args, **kwargs): super(EchoBot, self).__init__(*args, **kwargs) self.onMessage += lamda *args, **kwargs: self.something(*args, **kwargs) ``` - Included `msg` as a parameter in every event function, since it's useful if you want to extract some of the other data - Moved test data to the folder `tests` - Fixed various other functions, and improved stability
====== fbchat ====== Facebook Chat (`Messenger <https://www.messenger.com/>`__) for Python. This project was inspired by `facebook-chat-api <https://github.com/Schmavery/facebook-chat-api>`__. **No XMPP or API key is needed**. Just use your ID and PASSWORD. Installation ============ Simple: .. code-block:: console $ pip install fbchat Example ======= .. code-block:: python import fbchat client = fbchat.Client("YOUR_ID", "YOUR_PASSWORD") Sending a Message ================= .. code-block:: python friends = client.getUsers("FRIEND'S NAME") # return a list of names friend = friends[0] sent = client.send(friend.uid, "Your Message") if sent: print("Message sent successfully!") # IMAGES client.sendLocalImage(friend.uid,message='<message text>',image='<path/to/image/file>') # send local image imgurl = "http://i.imgur.com/LDQ2ITV.jpg" client.sendRemoteImage(friend.uid,message='<message text>', image=imgurl) # send image from image url Getting user info from user id ============================== .. code-block:: python friend1 = client.getUsers('<friend name 1>')[0] friend2 = client.getUsers('<friend name 2>')[0] friend1_info = client.getUserInfo(friend1.uid) # returns dict with details both_info = client.getUserInfo(friend1.uid,friend2.uid) # query both together, returns list of dicts friend1_name = friend1_info['name'] Getting last messages sent ========================== .. code-block:: python last_messages = client.getThreadInfo(friend.uid, last_n=20) last_messages.reverse() # messages come in reversed order for message in last_messages: print(message.body) Example Echobot =============== .. code-block:: python import fbchat #subclass fbchat.Client and override required methods class EchoBot(fbchat.Client): def __init__(self,email, password, debug=True, user_agent=None): fbchat.Client.__init__(self,email, password, debug, user_agent) def on_message(self, mid, author_id, author_name, message, metadata): self.markAsDelivered(author_id, mid) #mark delivered self.markAsRead(author_id) #mark read print("%s said: %s"%(author_id, message)) #if you are not the author, echo if str(author_id) != str(self.uid): self.send(author_id,message) bot = EchoBot("<email>", "<password>") bot.listen() Saving session ========================== .. code-block:: python session_cookies = client.setSession() # save session_cookies Loading session ========================== .. code-block:: python client = fbchat.Client(None, None, session_cookies=session_cookies) # OR client.setSession(session_cookies) Authors ======= Taehoon Kim / `@carpedm20 <http://carpedm20.github.io/about/>`__
Description
Languages
Python
100%