

Show HN: ProbablyTheMostRomanticThingEver - anulman
https://github.com/anulman/probablythemostromanticthingever

======
anulman
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.

Anyway, enjoy!

~~~
dannyp32
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.

~~~
anulman
Thanks for the note! Definitely intentional: the callback comes back, but
since there's no user ID, you hit the vanilla callback page.

(Basically, I wanted to make sure that everybody would have the card open...
it's just the messages that are private)

~~~
yebyen
... except if Facebook is firewalled at your workplace. It's OK, I also can't
play Jurassic Park Builder. I'm used to it.

~~~
anulman
+1.

If you want to see the sexy CSS3 animations + whatnot, the callback's at
<http://probablythemostromanticthingever.com/open>

~~~
yebyen
and the police! ty

------
dclowd9901
I don't understand what's supposed to happen, and I don't want to give access
to my friends list to you.

~~~
anulman
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.

