Opened 5 years ago

Closed 4 years ago

#6291 closed enhancement (implemented)

Investigate making a Facebook app proxy

Reported by: dcf Owned by: saint
Priority: Medium Milestone:
Component: Archived/Flashproxy Version:
Severity: Keywords:
Cc: griffinboyce@… Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

People may want to help contribute proxy capacity but don't have a web site on which to host the badge. It might be worthwhile to make an app that people can put on their Facebook page.

See if this is even technically possible and then decide if it's worth the effort.

Child Tickets

Change History (21)

comment:1 Changed 5 years ago by asn

It's only relevant for another month but maybe the "Access Facebook Award" could provide some incentive for someone to implement this ticket.

https://www.accessnow.org/prize

comment:2 in reply to:  description Changed 5 years ago by dcf

gsathya informs me that Facebook apps don't work the way I imagined--they get a whole page of their own and are not just a widget on a person's home page or whatever. If so, this becomes a less compelling thing to do.

comment:3 Changed 5 years ago by proper

I recommend to ask Facebook before coding this if they would tolerate or ban such an app.

comment:4 in reply to:  1 Changed 5 years ago by arma

Replying to asn:

It's only relevant for another month but maybe the "Access Facebook Award" could provide some incentive for someone to implement this ticket.

https://www.accessnow.org/prize

Not only that, but this idea won an Access Award and now people at OTI are working on it. Whatever 'working on it' means. It would be great for them to do it in public so others can help out.

comment:5 Changed 5 years ago by saint

Cc: griffinboyce@… added

This is do-able, and will work on either timeline or as a standalone app. (One app can act as both). A user can share an app/game on their timeline, and then friends can click it to play -- which also enables the flash proxy.

The flash proxy can't stay persistent -- it's wholly reliant on users keeping the page open. After discussing with David Fifield, it seems that a good strategy is to attempt to make more viral games/apps which would offer 10-30 minutes of interesting content. Most easy html5 games fall into this category (think Tetris or Bejewelled).

Note: "timeline" is the new facebook layout. In this update, there cannot be a persistent iframe in the sidebar because the sidebars no longer exist.

comment:6 Changed 5 years ago by saint

I've worked up a basic iframe display and put it on github at: https://github.com/glamrock/cupcake/blob/master/facebook/iframe.html

You can preview it at http://cryptic.be/cupcake/index.html

As you can see, it's incredibly basic but shows how facebook apps typically layer. Basically, all facebook apps (no matter how complex) are hosted offsite and are typically simple iframe setups. Unless it contains eval, any app we whip up is likely to pass inspection.

comment:7 Changed 5 years ago by dcf

Priority: minornormal
Status: newaccepted

What I'm thinking is this:

  1. We check in a copy of the Facebook iframe HTML and call it facebook.html.
  2. We put facebook.html next to embed.html on crypto.stanford.edu.
  3. Griffin makes a Facebook app containing the iframe.
  4. We try telling some Facebook users about it and see if it works.

comment:8 Changed 5 years ago by saint

That seems like a solid plan. Once the facebook embeddable is created, I'll grind it into an app and try to spread it a bit on facebook. How long would it need to be open to get a realistic estimate of success?

comment:9 Changed 5 years ago by proper

I generally think this is a great idea and don't want to be the bogeyman, but I am not sure Facebook will tolerate such an app.

Facebook's Randi Zuckerberg: Anonymity Online 'Has To Go Away' and they deleted my account, because it was an anonymous account and they demanded a governmental issues photo id. Facebook really has the opposite goal of anonymity. Feel free to call that FUD, just wanted to have that said, because it seems unlikely to me they're tolerating an app, which turns the user into a proxy.

comment:10 in reply to:  8 Changed 5 years ago by dcf

Replying to saint:

That seems like a solid plan. Once the facebook embeddable is created, I'll grind it into an app and try to spread it a bit on facebook. How long would it need to be open to get a realistic estimate of success?

Probably ask them to run it for 10 minutes.

comment:11 Changed 5 years ago by saint

Bridges also increase access to facebook, so it would seem to be a bit of cutting off the nose to spite their face.

Without delving into personal feeling about Facebook's history with privacy, I think it's worth a shot. Minimal time investment with a large potential reward.

comment:12 in reply to:  7 Changed 5 years ago by dcf

Replying to dcf:

What I'm thinking is this:

  1. We check in a copy of the Facebook iframe HTML and call it facebook.html.

I put this up at http://crypto.stanford.edu/flashproxy/facebook.html. It's also in the main repo as modules/facebook/facebook.html.

I made some changes, mainly to make the iframe element static. If there is a big disadvantage to doing it this way, let me know. Also let me know if there are any other changes you need me to make.

comment:13 Changed 5 years ago by saint

Owner: changed from dcf to saint
Status: acceptedassigned

So after much schedule finagling, I completed the facebook app earlier today. The app itself appears to work just fine. However, I need to move it to another host as Github Pages isn't as compatible with Facebook as I would like (it sometimes throws off a 405 error). Once I switch it to a different host, I'll share it broadly and hopefully we'll get some interesting data from it.

You can see the completed app here: http://cryptic.be/cupcake/fb4/
And here, once the migration is complete: https://apps.facebook.com/cnnct_fr/

Special thanks to kaepora for allowing me/us to use his connect four game.

comment:14 Changed 4 years ago by saint

Facebook will be forcing all apps to go https:// in October 2013, so at most we have six months of realistic bridge generation via facebook apps.  There are some options to get around that, such as popping the games out of facebook's frame (either automatically or via a "Click to Play" button that launches a popup).  Once the switch to https is made, I could also set the iframe to enforce http, and just let people deal with mixed-content errors.

comment:15 in reply to:  14 Changed 4 years ago by dcf

Replying to saint:

Facebook will be forcing all apps to go https:// in October 2013, so at most we have six months of realistic bridge generation via facebook apps.  There are some options to get around that, such as popping the games out of facebook's frame (either automatically or via a "Click to Play" button that launches a popup).  Once the switch to https is made, I could also set the iframe to enforce http, and just let people deal with mixed-content errors.

I was surprised, but setting the iframe to http seems to work. You get mixed-content warnings, but if the nesting goes like this,

https enclosing page
  http flash proxy embed.html
    ws non-secure WebSocket

the browser seems to make the WebSocket connection. It definitely doesn't work if the embed.html is itself served over https.

comment:16 Changed 4 years ago by dcf

Status: assignedneeds_information

saint, is this implemented now by OTI? Is there code available? Where is the deployment on Facebook and how do you use it?

comment:17 Changed 4 years ago by saint

dcf, the code is as it was back in March/April: https://github.com/glamrock/cupcake/tree/master/facebook/apps/connect-four

Deployment is here: https://apps.facebook.com/snarky_connect_four/

Brian Duggan worked to fix nginx-facebook compatibility issues to make the app actually run in Facebook's quirky environment. Because of issues not related to the app's codebase, the Facebook game runs about 80%-90% of the time.

comment:18 Changed 4 years ago by saint

My understanding is that Paul Beccio is/was working on a social points/tracking system for facebook games, but I'm unsure of his status.

As of the last Flashproxy Hackathon, I'm actively working on a Tor-enabled/compatible game, but not specifically for the facebook platform due to various problems on their end. This would instead be self-hosted and hosted on sites without full/forced SSL connections such as Newgrounds and Kongregate.

comment:19 Changed 4 years ago by saint

Also, this was not implemented by OTI, but by Brian Duggan and myself as independent volunteers.

comment:20 in reply to:  17 Changed 4 years ago by dcf

Replying to saint:

dcf, the code is as it was back in March/April: https://github.com/glamrock/cupcake/tree/master/facebook/apps/connect-four

Deployment is here: https://apps.facebook.com/snarky_connect_four/

Thanks for the update. If you're happy with it, please go ahead and close this ticket.

comment:21 Changed 4 years ago by saint

Resolution: implemented
Status: needs_informationclosed

Thanks. I'm satisfied with the code and implementation. Others will likely build upon the concept, but the original ticket is closed.

Note: See TracTickets for help on using tickets.