views:

448

answers:

2

Hi folks,

I'm building a Facebook app that has (as part of its function) a display of a user's FB photos. The terms and conditions on this issue are a little fuzzy to me, so I figured I'd ask this here:

Does anyone know if it's acceptable to create thumbnails of their FB photos and store them on my server? If so (provided I've got offline_access permissions and all that), would I have to refresh it every 24 hours as well?

Thanks much!

+1  A: 

In short, the answer is No.

Facebook's Platform Policy states:

You must not store or cache any data you receive from us for more than 24 hours unless doing so is permitted by the offline exception, or that data is explicitly designated as Storable Data.

The offline_access extended permission actually has no affect on whether you can store any data, you may have confused it with the offline exception, which is as follows:

Offline exception: Applications that run on a device controlled by and possessed by the user -- such as desktop or laptop computer, mobile device, or other embedded device -- can cache user data received from Facebook for more than 24 hours only when Internet connectivity is unavailable or it is impossible for the application to run. Such data can be stored on the client device but not a remote server, and cannot be made available to the developer. Cached data older than 24 hours can be displayed to the user (or otherwise used by the application) in lieu of updated data only until an update is possible, and in no case beyond 14 days after the last update.

So this means that all you are allowed to store, unless you are covered by the offline exception, are the following data fields:

User data you receive from Facebook that you can store indefinitely:
uid                    User ID
nid                    Primary network ID
eid                    Event ID
gid                    Group ID
pid                    Photo ID
aid                    Photo album ID
flid                   friend list ID
listing_id             Marketplace listing ID
page_id                Facebook Page ID
proxied_email          Placeholder email addresses for your users
notes_count            Total number of notes written by the user
profile_update_time    Time that the user's profile was last updated
Dustin Fineout
That's what I figured — thanks much!
DoryEx
is the solution to make a cronjob script that connects to fb every day, and fetches the users data again? if soo, how can i do that?
glavić
Well you could do that for users that have granted you offline_access, or you can update user info when the user visits the app. You can store the time you last updated the info and do this on a certain interval, i.e. update if it has been more than 24 hours since the last update.
Dustin Fineout
+1  A: 

You shouldn't need to copy/resize the user's photo, just cache the URL of the photo on Facebook and then use the browser/css to size it to your desired size. Use FQL to query the photo table to get the URL to the full size version (src_big) of the photo. Or query for a smaller size Facebook already created. This is the url on how to query for the photo url info: http://wiki.developers.facebook.com/index.php/Photo%5F%28FQL%29

Brent Baisley
That'll work just fine (and is what we ended up doing) — were just hoping we could optimize a bit beyond that. Thanks tho!
DoryEx

related questions