This is a WebFinger server for Facebook and Twitter. It's deployed at these endpoints:
It's part of a suite of projects that implement the OStatus federation protocols for the major social networks. The other projects include activitystreams-, portablecontacts-, salmon-, and ostatus-unofficial.
Google isn't included because it already provides a WebFinger server for Google accounts at
License: This project is placed in the public domain.
If your client consumes arbitrary email addresses, you'll need to hard-code exceptions for
twitter.com and redirect HTTP requests to these endpoints. (The user URI may use either domain, e.g.
This should be refactored so it can be used as a library, like activitystreams-unofficial.
We'd also love to add more sites! Off the top of my head, Yahoo, Microsoft, Amazon, Apple's iCloud, Instagram, WordPress.com, and Sina Weibo would be good candidates. If you're looking to get started, implementing a new site is a good place to start. It's pretty self contained and the existing sites are good examples to follow, but it's a decent amount of work, so you'll be familiar with the whole project by the end.
Pull requests are welcome! Feel free to ping me with any questions.
Most dependencies are included as git submodules. Be sure to run
git submodule init after cloning this repo.
app.yaml.* files, one for each App Engine app id. To work on or deploy a specific app id,
symlink app.yaml to its
app.yaml.xxx file. Likewise, if you add a new site, you'll need to add a corresponding
rm -f app.yaml && ln -s app.yaml.twitter app.yaml && \ ~/google_appengine/appcfg.py --oauth2 update . && \ rm -f app.yaml && ln -s app.yaml.facebook app.yaml && \ ~/google_appengine/appcfg.py --oauth2 update .