Provides a unified API for pushing updates out to multiple external services.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
db
doc
lib/tasks
public
script
spec
vendor/plugins
.gitignore
Gemfile
Gemfile.lock
README.md
Rakefile
config.ru

README.md

Super Publish

Provides a unified API for pushing updates to multiple external services.

Designed to integrate seamlessly with the Forge (TM) content management system.

Current status: conceptual - nothing works yet.

To-Do

Authentication

Allow single-key authentication so that it's very easy to access this service from within over platforms.

For authenticating the ability to push to various networks, we'll typically be using OAuth or OpenID and so on. https://github.com/intridea/omniauth seems like a great resource for that.

Targets:

  • Facebook: via email (their mobile email address)
  • Twitter (via... ?)
  • LinkedIn
  • Flickr
  • YouTube
  • Once an API is out, Google+?

Steps

  1. Develop a simple model for what updates consist of and create a simple interface to create them online (for testing purposes).
  2. Install an authentication system and make it so that users can authenticate with all of the targeted platforms
  3. Develop some proof-of-concept code for publishing to multiple platforms
  4. Figure out an appropriate way of dealing with the differences between the platforms. E.g. Twitter only allows 140 chars, how do we address?
  5. Polish the code for publishing to multiple platforms
  6. Polish the interface
  7. Incorporate the single-token authentication scheme
  8. Launch the platform
  9. Build it into Forge

API Requirements

  • Publish an update
  • Get a list of authenticated networks for a given user

Links/Inspiration

https://github.com/raygao/ChouetteSocial

https://gist.github.com/771711e84d999400ba57, which also requires this code:

def bitly_url
  Bitly.shorten('http://foodies.ca/posts/#{self.to_param}')
end