Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A web service that implements the Salmon distributed comment protocol for Facebook, Twitter, and Google+.
Python CSS
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
django-salmon @ f8faf7f catch up to django-salmon
feedparser @ 24e0e27 add feedparser submodule
google-api-python-client @ 481c80d add new google-api-python-client submodule
httplib2 @ 7c173e6 add httplib2 submodule
python-gflags @ fc365af add google-api-python-client and python-gflags submodules
static fix adding facebook user, tweak front page, switch trash can icon for…
templates misc tweaks for publishing and interop
webutil @ 9817e9c remove votizen/google-api-python-client repo; it disappeared from github
.gitignore rename googleplus_* oauth files to google_*
.gitmodules add new google-api-python-client submodule fix typo add webutil *** empty log message ***
app.yaml misc tweaks for publishing and interop rename Domain to TwitterSearch and start to add fb/g+/twitter UI to f… add feedparser submodule fix fb bug getting name from profile json move from googleplus_* oauth files to google_* only grab activities with 'article' attachments that have valid links… reimplement task polling and start on sending slaps add facebook oauth dance, remove Site class
notes misc tweaks for publishing and interop
queue.yaml add with base Site and Source models misc tweaks for publishing and interop reimplement task polling and start on sending slaps fixed send_slap unit test move code for normalizing link to domain into util.domain_from_link() remove outdated comment

salmon-unofficial Salmon


This is a web service that implements the Salmon distributed comment protocol for Facebook, Twitter, and Google+. It's deployed at .

It's part of a suite of projects that implement the OStatus federation protocols for the major social networks. The other projects include portablecontacts-, activitystreams-, webfinger-, and ostatus-unofficial.

There are many related projects. sockethub is a similar "polyglot" approach, but more focused on writing than reading. IndieWeb Comments are a bottom-up, decentralized approach where each user posts their comments to their own site first.

License: This project is placed in the public domain.


Just head over to and connect your Facebook, Twitter, or Google+ account!

Future work

We're not at all confident in the interoperability and robustness. We've only done a very limited amount of testing. We should test against more Salmon-capable endpoints and fix the bugs we find.

We should probably also separate the Salmon conversion logic out of this so it can be used as a library as well as a service.

  • Allow passing OAuth tokens as keyword args.
  • Expose the initial OAuth permission flow. The hard work is already done, we just need to let users trigger it programmatically.
  • ...

We'd also love to add more sites! Off the top of my head, YouTube, Tumblr,, Sina Weibo, Qzone, and RenRen 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.

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

Deploy command: ~/google_appengine/ --oauth2 update .

Something went wrong with that request. Please try again.