Hey HN. I've been seeing a pretty awesome girl for the last couple of weeks, and wanted to send her a series of notes.
To that end, I wrote an ephemeral messaging system using Sinatra + Redis that authenticates her ID against Facebook and will show her a new message every day. Each message disappears from the public web once its day has passed.
I've released the code on Github; you can use it to display any sequence of messages over time to a set of authorized users. Documentation is pretty sparse right now; I'll be posting better comments, a readme, and license information (using MIT) tonight.
Not sure if this was done on purpose, but if you click on sign in with facebook and then hit cancel on the facebook dialog box, the card still opens... just a heads up.
Definitely understand the concern—I set the minimum permissions, but obviously friends list is among them. All the code looks for is user_id; I'm not even storing the access_token generated.
This will be clearer as the readme shapes up, but it's for a private messaging repository, accessible only to folks whose user ID you save in a Redis hash.
For example, assume authed_user_ids = {1: '', 2: ''}. If, after authenticating with Facebook, we determine your user_id is 1, today's date gets stored as your value (authed_user_ids = {1: 'DATE', 2: ''}). The card will then open with Day 0's message, and will display a new one for every subsequent day until the sequence has expired (you will need to auth every time, as the only session variable stored is the OAuth nonce).
If Facebook returns with user_id = 3, the card will open and display some generic "no message for you" content.
To that end, I wrote an ephemeral messaging system using Sinatra + Redis that authenticates her ID against Facebook and will show her a new message every day. Each message disappears from the public web once its day has passed.
I've released the code on Github; you can use it to display any sequence of messages over time to a set of authorized users. Documentation is pretty sparse right now; I'll be posting better comments, a readme, and license information (using MIT) tonight.
Anyway, enjoy!