Skip to content

snarfed/webfinger-unofficial

Repository files navigation

webfinger-unofficial Webfinger

About

This is a WebFinger server for Facebook and Twitter. It's deployed at these endpoints:

http://facebook-webfinger.appspot.com/
http://twitter-webfinger.appspot.com/

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 gmail.com.

License: This project is placed in the public domain.

Using

This simply implements the WebFinger protocol using Facebook's and Twitter's OAuth authentication and APIs. To use it, just point your WebFinger client code at the endpoints above.

If your client consumes arbitrary email addresses, you'll need to hard-code exceptions for facebook.com and twitter.com and redirect HTTP requests to these endpoints. (The user URI may use either domain, e.g. snarfed.org@facebook.com or snarfed.org@facebook-webfinger.appspot.com.)

Future work

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.

Development

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.

You can run the unit tests with ./alltests.py. They depend on the App Engine SDK and mox, both of which you'll need to install yourself.

Note the 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 app.yaml.xxx file.

To deploy:

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 .

About

A WebFinger server for Facebook and Twitter.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published