Facebook App: Displaying Users Photos to Other Users? - facebook

Does anyone know if Facebook Permissions will allow an app to display a photo of one app user to another, regardless of privacy settings?
I want to save photo id's to a database and then display many different users photos at once, to the user, within the app.
I could use fbml but am hoping to use xfbml.
Any suggestions would be much appreciated!

Facebook API restrictions are going to be exactly the same as the authenticated user ( assuming they grant you sufficient access). So if a user has access to photo's in another users gallery, you can display them. If they don't, you cannot.
However, if you save the Photo ID of a users picture, then want to display it to a different user later on, who does not have implicit rights to view that photo, they will not be able to see it.
Your app would be best served by taking a copy of the shared photo, which would take Facebook permissions completely out of the equation.

Related

How to add a "Facebook" button which allows users to select an image FROM Facebook and return it to my website

I have a Web-to-Print store where users can upload their own images. I need a way for users to be able to click a "Facebook" button, log in, and select one of their photos (which is then returned to our website).
This seems like it should be pretty easy and is extremely common on Web-to-Print sites, but I can't find any information on it and all searches resulted in uploading an image TO Facebook.
The Facebook API doesn't seem like it would offer a good user experience, and the SDK doesn't seem to support selecting and then pulling in an image. Is there no pre-made way to do this or Am I missing something?
There is no prebuilt function, you would have to authorize the user with the user_photos permission and use the /me/photos endpoint to get his photos: https://developers.facebook.com/docs/graph-api/reference/user/photos/

Providing users with a way to detag their Facebook photos

I run a social membership club and my website users can log into my site with each having their own profile page.
On each of my user's profile pages, I want to display a list of photos which have been tagged with that user on Facebook. I know this part is possible.
The bit I am struggling with is giving each of my users the ability to 'untag' themselves in each photo of them that is displayed in the list. The 'untagging' should happen directly from my site. Is this possible and how could I go about doing this?
Hope someone can help/has ideas?
Unfortunately, there's no facbeook API that allows removal of photo tags at this time of writing.
Its not documented and I haven't tested this but I'd chance issuing a DELTE request to
/PHOTO_ID/tags/USER_ID
Worth a shot through the graph explorer anyway.

Tagging fans of a fanpage without user login. How can I work around this?

As far as I know, you can only tag friends of the account associated with the access_token currently in use. This means that if I want to be able to make an app to share photos on facebook with a tagging functionality, it's mandatory that I make an authentication system, where the user needs to type his password to login on FB and I request and store his sixty_days_access_token. This approach is fine for web apps, but is troublesome if I have to implement a desktop touchscreen interface where the users interact with the system in an environment where anyone can watch him typing his user and password. I'm facing this problem with a public touchscreen, where the users can take pictures and send it to Facebook. The interface is implemented with C++ and the curl library. As the touch is in a very crowded environment and the screen is big, we experienced that the users are intimidated to enter his acc/pass. We worked around this problem by creating a fan page to the event where we store all the photos. As we already have the fan page admin access token stored, we don't need to login the users but clearly we are not able to tag any of the user friends, which vastly reduce the viralization potential of the solution.
So, having this problem in mind, how can I face this?
Do I really need to make an authentication of the users to be able to
tag their friends?
Is there any creative solution?
Yes, if you want to tag a user or their friends in a post, you need them to log in - this is a requirement of the Photo tagging API.
The only alternative i can think of is to give the user a URL they can go to later (e.g. on their phone or PC) which will prompt them to authorise your app and do the tagging at that time.

Facebook Connect and Photo Albums

I am currently developing a site for models/actors, and at this point I am just trying to ascertain what I can and can't do with Facebook Connect (I have virtually no experience in using Facebook Connect or FQL).
Basically there is going to be a facility whereby users will be able to upload their pictures. I want to know is it possible to use Facebook Connect to get the user's photo albums, in order to save the user from re-uploading all the photo's that are already on FB?
If so, do I/should I LINK to these photos, or FETCH them from Facebook and save a copy on my server?
EDIT: Just to clarify, this is what I want to do:
User will register on my site and agree to associate their Facebook ID with my site.
I then want to present the user with a list of all their albums that are on Facebook, the user can then select which albums they want to display on my site.
(optional) The user can select which specific photos in each album they want to display on my site.
Is this possible to do at all?
You can upload photos using the API. Check out this: http://developers.facebook.com/docs/reference/api/photo
If it were me, I would just upload the photo to Facebook and save the URL of the image rather than store it on my own server. You could do either one, but I don't see the sense is storing the image twice. The one issue could be if you wanted your photo at a higher quality than Facebook allows, but their quality is pretty high.

Caching facebook profile pics?

I'm building a site that allows users to sign in using their facebook account.
I want to cache nice big versions of the users profile pictures. I know that i'm not allowed to cache images for more than 24 hours so i'm going to re-fetch the images once every 24h.
I thought i could get the url of the image original like this:
$fb=new Facebook($key,$secret);
$query = "SELECT src_big FROM photo WHERE pid IN (SELECT cover_pid FROM album WHERE owner = ".$id." AND name = 'Profile Pictures')";
$imgurl = $fb->api_client->fql_query($query);
http://wiki.developers.facebook.com/index.php/Photo_(FQL)
But i get an exception saying "Requires user session". Why do i need a user session? Is there a workaround for this? How does other sites solve this?
If i have a user session it works for some users but not all. Why not?
Rules on photo accessibility are detailed with the Photos.get API method.
Privacy Note: Photos are visible on
the Facebook Platform only if the
photo owner has authorized the calling
application, or the photo owner has
not turned off access to the Platform.
The Photos.get method is essentialy a wrapper for querying the Photo FQL table so it follows the same rules.
Consider asking users for the offline_access extended permission so you can query their own photos even when they're not online. You'll need to store their session key in your database and make queries with that, but it will mean you can pull down the photos of users who have authorised your application whenever you want.
For when it sporadically works: Some users may have set privacy settings to disallow applications access to their profile pics.
Possibly some users might not have uploaded a profile pic.
Edit: From the (new)fb menus go to: Account > Privacy Settings > Applications and Websites > What you Share
(This page explains about how the user's privacy setting choices affect fb-enhanced websites)
In short the external website can only access what fb users have made available to 'Everyone'.