Awesome
Facebot
Send facebook message to person or group
Graph API doesn't provide function for sending message, so I write one.
You can write a bot to talk with you, or send notification to your co-workers group if one of your server is down.
Feel free to open issue or PR!
Installation
pip install facebot
or
python setup.py install
Usage
Initiate a facebook instance:
>>> from facebot import Facebook
>>> f = Facebook('<USERNAME>', '<PASSWORD>')
Listen for messages:
- Fill in
USERNAME
andPASSWORD
inlistener.py
- Then type
python listener.py
. - Have fun seeing friends sending you messages.
Ping:
If you want to write a long-running script,
you should frequently call ping
to tell facebook that you are alive.
# play ping pong with facebook
>>> f.ping()
Send message to a person:
# send a text message
>>> f.send_person('<USER_ID>', '<BODY>')
# send message with photo
>>> f.send_person('<USER_ID>', '<BODY>', pic='http://imgs.xkcd.com/comics/python.png')
# send message with sticker
>>> f.send_person('<USER_ID>', '<BODY>', sticker='392309754199670')
# send message with like gesture only available in mobile app
>>> f.send_person('<USER_ID>', '<BODY>', like='l') # large one
>>> f.send_person('<USER_ID>', '<BODY>', like='m') # medium one
>>> f.send_person('<USER_ID>', '<BODY>', like='s') # small one
Send message to the group:
How to find thread id?
Select See Full Conversaction
in the group dialog, and the last part of url should be conversaction-123456789
, so 123456789
is the thread id.
# send a text message
>>> f.send_group('<THREAD_ID>', '<BODY>')
# send message with photo
>>> f.send_group('<THREAD_ID>', '<BODY>', pic='http://imgs.xkcd.com/comics/python.png')
# send message with sticker
>>> f.send_group('<THREAD_ID>', '<BODY>', sticker='392309754199670')
# send message with like gesture only available in mobile app
>>> f.send_group('<THREAD_ID>', '<BODY>', like='l') # large one
>>> f.send_group('<THREAD_ID>', '<BODY>', like='m') # medium one
>>> f.send_group('<THREAD_ID>', '<BODY>', like='s') # small one
Read the conversation:
# read all the messages in this conversation
>>> f.read('<THREAD_ID>')
Typing:
# send typing status to the group
>>> f.group_typing('<THREAD_ID>')
# send typing status to the user
>>> f.person_typing('<USER_ID>')
Get access token:
# default using Graph API Explorer
>>> f.get_access_token()
# retrieve other app's access token
>>> f.get_access_token('<APP_ID>')