Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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
README.md fix typo
alltests.py add webutil
app.py *** empty log message ***
app.yaml misc tweaks for publishing and interop
app_test.py rename Domain to TwitterSearch and start to add fb/g+/twitter UI to f…
appengine_config.py add feedparser submodule
facebook.py fix fb bug getting name from profile json
facebook_test.py
fakes.py
googleplus.py move from googleplus_* oauth files to google_*
googleplus_test.py only grab activities with 'article' attachments that have valid links…
models.py reimplement task polling and start on sending slaps
models_test.py add facebook oauth dance, remove Site class
notes misc tweaks for publishing and interop
queue.yaml add models.py with base Site and Source models
salmon.py
salmon_test.py misc tweaks for publishing and interop
tasks.py reimplement task polling and start on sending slaps
tasks_test.py fixed send_slap unit test
twitter.py move code for normalizing link to domain into util.domain_from_link()
twitter_test.py remove outdated comment

README.md

salmon-unofficial Salmon

About

This is a web service that implements the Salmon distributed comment protocol for Facebook, Twitter, and Google+. It's deployed at https://salmon-unofficial.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 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.

Using

Just head over to https://salmon-unofficial.appspot.com/ 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, WordPress.com, 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.

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.

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

Something went wrong with that request. Please try again.