Skip to main content

Facebook Chat (Messenger) for Python

Project description

Facebook Chat (Messenger) for Python. This project was inspired by facebook-chat-api.

No XMPP or API key is needed. Just use your ID and PASSWORD.

Installation

Simple:

$ pip install fbchat

Example

import fbchat

client = fbchat.Client("YOUR_ID", "YOUR_PASSWORD")

Sending a Message

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

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

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

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

session_cookies = client.setSession()
# save session_cookies

Loading session

client = fbchat.Client(None, None, session_cookies=session_cookies)
# OR
client.setSession(session_cookies)

Authors

Taehoon Kim / @carpedm20

Project details


Release history Release notifications | RSS feed

This version

0.9.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fbchat-0.9.2.tar.gz (14.6 kB view details)

Uploaded Source

File details

Details for the file fbchat-0.9.2.tar.gz.

File metadata

  • Download URL: fbchat-0.9.2.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fbchat-0.9.2.tar.gz
Algorithm Hash digest
SHA256 91aafcbdc136e82f5e13b76c50e80be1aa41cc7638f488a48717ced6ff4f68fb
MD5 080db184e52488d8380fbf26635c73c4
BLAKE2b-256 6675a6bcee168351bb833489bb6560fca23ff5ca275e8e266e73017e3d8e243f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page