Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .bundle
Octocat-spinner-32 app
Octocat-spinner-32 bin
Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 vendor
Octocat-spinner-32 views
Octocat-spinner-32 .gems
Octocat-spinner-32 Gemfile
Octocat-spinner-32 NOTES
Octocat-spinner-32 README.textile
Octocat-spinner-32 TODO
Octocat-spinner-32 app.rb
Octocat-spinner-32 config.ru
README.textile

Identity

Identity is an experimental spike at building a distributed identity aggregator. The current implementation is targeted at being used for the Ruby User Group Berlin’s website. It hopefully will make it easy for speakers, members, visitors and generelly everybody interested in the group to publish information about themselves on the website.

The general idea is to allow people to instruct a tiny Sinatra application to aggregate identity information through a messaging interface. Currently the only implemented interface uses Twitter replies but it’s easy to imagine additional interfaces like IM, email and maybe others.

In order to make the application work on Heroku it only sits there and waits for an http-authenticated ping. When pinged the application polls Twitter replies for a given account and responds to commands contained in these messages by aggregating profile information. It will store these identities to a remote CouchDB so it should be easy to share them with other projects.

Let’s say the Twitter account is \@rugb then the following replies will (currently) be recognized:

@rugb !create [profiles] @rugb !update [profiles] @rugb !join

The !create and !update commands fetch identity information from the given profile sources. The !create command is basically just an alias for !update except that it will always fetch information from Twitter.

Valid sources are either full key/value pairs or URLs identifying a profile source. The following arguments would constitute valid profile sources:

twitter:svenfuchs github:svenfuchs http://twitter.com/svenfuchs http://github.com/svenfuchs http://svenfuchs.com/me.json # pointing to a json doc w/ profile information http://tinyurl.com/yc7t8bv # pointing to a json doc w/ profile information

The !join command just adds the receiver account to a groups array for the given identity.

Examples:

@rugb !update # creates an identity for the sender if none exists and retrieves and stores profile information from Twitter @rugb !update http://svenfuchs.com/me.json # adds the json hash @rugb !join # simply adds “rugb” to my groups
Something went wrong with that request. Please try again.