Git Product home page Git Product logo

fbchat's Introduction

fbchat

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

fbchat's People

Contributors

aeantipov avatar bankde avatar botcs avatar carpedm20 avatar charliiee avatar dainius14 avatar dcep93 avatar hashirzahir avatar johnathonnow avatar madsmtm avatar marchon avatar mkolman avatar pidgeyl avatar pirelle avatar sskender avatar stanleykylee avatar tcyrus avatar thekindlyone avatar thgcode avatar timlchan avatar tmcadam avatar vincent-lg avatar wannaphong avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.