Facebook Greeter


FacebookGreeter is a tiny Python utility that I used to greet all my Facebook Friends before leaving the social network. It is able to detect the Facebook language set by your friends and prepare a suitable message for each language. It is also able to show you every friend skipped because of errors and tries to recover the skipped friends at the second run of the program. Therefore, it also has a tiny database (a wrapper around pickle) to store information about your friends before writing on their walls.

FacebookGreeter depends on the official Facebook Python SDK, that can be obtained on GitHub.



How to use it

    1. Install the dependencies (Facebook Python SDK)
    2. Register a new Facebook application, filling the forms.
    3. Create a tiny webpage hosted on some domain. For testing, a index.php page with the codeis sufficient.
    4. Complete settings.py with the FB App information you should receive in Step 2 and with the domain/subdomain chosen in step 3. Please just use http://yourdomain.ext without including the index.php part or whatever
    5. Locate the class Greeter in main.py (at about line 101). This class represents a Greet (a farewell message, a leaving message, …). For each of the locale you want to support (in my case people using FB in Italian [it_IT] and English [en_US], but I used English as a fallback case for every other locale), define a method returning a farewell message string.

         def en_US(self, friend):
              return """Dear """ + friend.first_name + """ """ + friend.last_name + """, because of the current and future
              ways FB will handle our privacy, I decided to unsubscribe. I hope to stay in touch with you:
              e-mail/Google Talk: your-google-id@gmail.com
              mobile: 12345678910
              Skype: your-skype-name
              Twitter: @your-twitter-name
              [add as many as you want]
              Best Regards (Message sent automatically)"""

      Be sure to “register” the greet in the greet() method of the class:

         def greet(self, friend):
              if friend.locale == u'it_IT':
                  return self.it_IT(friend)
                  return self.en_US(friend)
    6. Run the program (python main.py). Authorize the FB App you created and gather the secret code from the script/page you created a step 3. Input the secret code to the program. Now relax, you are announcing your farewell to Facebook.


Q: Why have you developed this tool?
A: I was too lazy to manually write to all my Facebook “friends” to let them have the opportunity to contact me after my Facebook departure. Moreover, the Internet lacks a proper example on how to handle Facebook OAuth using Python. My program does and may be used for other purposes (see access.py)

Q: Can you help me to properly setup the program?
A: No. I left Facebook and I will never join it again. I left some instructions for how to use facebookgreeter.

Q: I don’t know know how to create a Facebook application. Can you help me?
A: No. I can not access Facebook Apps anymore. If you are a developer, you sure know how to handle this.

Q: I’ve just found a bug!
A: There are many. The program fails to send a Greet to Friends using non latin-1 characters but it will notice you of the failure, so you can manually greet them. Anyway, feel free to correct the bug, I won’t work on this program anymore

Q: The program looses Facebook authentication after some hours.
A: I know. Usually, a single Facebook OAuth lasts enough for announcing your Facebook departure. I don’t want to manage re-authentication, I don’t need it.

Q: The way you manage Greets is not elegant and hardcoded.
A: Yes, I know.

Q: But I..
A: No. I released the program because other people may make a good use of it, but I don’t want to hear about FB anymore.

About Author


Dr. Daniel Graziotin received his PhD in computer science, software engineering at the Free University of Bozen-Bolzano, Italy. His research interests include human aspects in empirical software engineering with psychological measurements, Web engineering, and open science. He researches, publishes, and reviews for venues in software engineering, human-computer interaction, and psychology. Daniel is the founder of the psychoempirical software engineering discipline and guidelines. He is associate editor at the Journal of Open Research Software, academic editor at the Research Ideas and Outcomes (RIO) journal, and academic editor at the Open Communications in Computer Science journal. He is the local coordinator of the Italian Open science local group for the Open Knowledge Foundation. He is a member of ACM, SIGSOFT, and IEEE.