Using the Facebook php SDK to retrieve photos and about info - php

I was just getting into the testing of the SDK for the Facebook app development using PHP. I understand the basic set up to get started, but I'm not sure how to pull album photos so I can display them throughout my page when the user logs in. Is this documented in the development section on Facebook or is there some kind of guide i can look over?
I'm able to display names but I'd also like an array of photos from the libraries and the users' information like work. I've tried searching for specifics to get this implemented but I'm not hitting any documentation on it.

but I'm not sure how to pull album photos so I can display them throughout my page when the user logs in.
Take a look at this awesome tool- Graph API Explorer
Also, you should read about the Permissions. By taking the different permissions from your user, you can fetch the related data of the user. You can test the same using the Graph API Explorer- just click on Get Access Token to set the different permissions.
For eg, if you want to fetch the user's photo, ask for the permission (while login, using scope parameter)- user_photos and simply call:
/me/photos
Live Demo
users' information like work
permissions: user_work_history
call : me/?fields=work
Live Demo

Related

How can I download all photos of the current user in the Facebook Graph PHP SDK?

I'm trying to find all photos where the current user is tagged in using the Facebook PHP SDK. When I query $fb->get('/me/photos?type=tagged&limit=10000'), only around 500 photos are present in the list when I'm logged in as me. If I check on the Facebook web page, it says there are over 3000 photos of me. Is it possible to get all photos of the current user?
Hopefully this summary saves some folks time since I spent a few days scratching my head over this. As of Graph API v2.5, your app will not have permission to view photos that other people have uploaded unless the uploader has logged into the app and granted the user_photos permission too. This even applies to photos the current user has been tagged in.
In order for an app to get all photos that you are tagged in through the Graph API, all of your friends who have uploaded photos that you are tagged in would have to grant permission to the app.
To quote Facebook support:
After checking, this should be the case. Each Facebook user is in
control of what data is accessible to an application. If you have that
user grant the user_photos (and possibly user_posts if it's the
container for the photo) to the application, you should be able to
fetch that photo.
Source: Facebook API Bug Report
Yes, it's possible, but not with just one call. You'll have to use pagination, as outlined in
https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5#paging
In this case, the paging.next property in the JSON response contain the link/call to get the next results. I'd recommend to set the limit to 50 or 100 maximum,

Add users post to their facebook newsfeed automtically with php

I have a website I'm working on. It enables users to register and post stuffs within the site. Can I get a link to some sort of api that allows people to add their facebook account (once) and then automatically post what they posted on my site on their facebook newsfeed (the sort of thing that happens when you connect your facebook account to your twitter account) .I've searched and can't seem to get exactly what I want
What you want is pretty common and if you searched you clearly didn't do a good job on the search.
Using the Facebook PHP SDK is pretty straight forward. There is a PHP Library available with a demo of the functionality you want. In your case you need to do some stuff more, so I'll explain globally what you should do:
Get the Facebook PHP SDK and load it into your website, determine what scope you need to perform the actions what you are going to do, in your case you need to have access to their timeline which is called the publish_stream scope. In order to get the Facebook PHP SDK working you need to create an app at http://developers.facebook.com
If a user grants access you need to save the authentication token that the user provides and save it in your database for later use. I'm not 100% sure how long they are valid, I think it's maximum of 30 days at the moment, but you have the ability to refresh the toking in the requests you make (correct me if I'm wrong, it's been a while..)
Everytime an action is done using the Facebook API you inject the usertoken in the request, thus performing the "post" action onto their timeline.
What you are looking for is pretty straight forward and easy to find..

Facebook API - Access Token Delivers Inconsistent Information

In Facebook's API, the Graph Explorer(https://developers.facebook.com/tools/explorer) provides data on requested queries using Facebooks graph structure. When choosing the three fields,"ID, name, posts", the explorer returns all of the users posts of the user's wall, filtering out any activity the user has done anywhere else. It is strictly what is on the user's wall.
The problem here is that whenever I make a new application and test the applications data results using the Graph API explorer I always get similar, but extra information. The extra information is what's included in the user's, "Recent Activity", feed.
In the graph explorer if you look at the top there is a choice for an application, you can switch to the application you've made. Then when requesting an access token, you can select the, "read_stream", permission which allows an application to read a user's stream data i.e wall, news feed, etc.
The GET requests made by the Graph API Explorer application deliver different results then a custom made app using face book's developer API.
I've tried to locate the problems within the access tokens, but I've had no luck.
The access token is calculated based on the permissions you request.
Every time you change the permissions you are asking for, the access token will change.
I'm almost sure that Facebook Debugging App requests for some permissions you are not requesting, therefore you will not be able to replicate the results you get with their app in yours.

Take the likes from users of my app and file them into csv

I need to be able to consolidate all the likes from users that use my Facebook app into an Excel or .csv file. I can have the user authenticate within my Facebook app, but is there a way to see the likes for all users of an app using Open Graph or some other Facebook tool? I'm certain that someone else must have had this problem, and I'm hoping that one of you can help me out!
I've been trying to run FQL queries to bring up likes, but don't have any experience with PHP so it has been miserable so far. Any ideas?
There's no way to retrieve a list of users of your app - you'll need to manually build that as users authorise the app see this question for more information
Assuming you have permission to access a user's likes connection - access /USER_ID/likes and parse the response, saving it to a file in accordance with whatever language you're using's syntax (google is your friend here)
Note that your use of the data is subject to Facebook's policies and user's consent in accordance with your privacy policy and sharing it with third parties may be illegal (i am not a lawyer, this is not official advice, etc etc)
Here is the problem with that the application type does not have a like connection. Application Object GraphAPI This is inconvenient when you are looking to gather data on the users that like it.
OR were you talking about the likes endpoint of the user object? That you can gather but I dont think it is what you are looking for. It is shown here Graph Explorer Example - user's likes

Get facebook posts/events/news/gallery with javascript (or php) inside my website

I'm tryin to develop a (almost) 100% client-side dynamic website by integrating it with twitter, facebook and flickr.
I've been able so far to get the last 4 tweets (with javascript) from my client's feed, and now i was wandering if i could do the same with facebook's gallery and events from their feed.
Especially, what i need (given the facebook username/api key/whatever)
gallery
for each gallery in user's profile:
get the gallery name
get the first picture
get the gallery url
news/events
for each news/event/post in user's profile:
get the event name
get the event text
get the event picture (if provided)
get the event url
I don't want to use the facebook widgets with their rendering, i just need to read the json response (if there's any) and put the data inside my website (like a preview).
Since my client is pretty rusty with "computers (cit.)" but he's (not so strangely) comfortable with facebook/twitter/flickr, i tought about a solution like this before adding a database and an admin interface to our website.
I found some resources online, so i think it's possible (in a way or another). I'd like to do it in javascript, but if it's php i won't complain.
Check out this API to get photoes from the user profile
http://developers.facebook.com/docs/reference/api/album/
This is for events
http://developers.facebook.com/docs/reference/api/event/
You can use either the PHP or the Javascript API SDKs:
http://developers.facebook.com/docs/reference/php/
http://developers.facebook.com/docs/reference/javascript/
respectively. Naturally you would handle the returned information differently. Both have a method called api() which can be utilised to grab the album and event objects (as mentioned in another answer):
http://developers.facebook.com/docs/reference/api/album/
http://developers.facebook.com/docs/reference/api/event/
You can pass parameters in the methods to restrict the results returned by fields, number of items, sizes of images etc. This is outlined here:
http://developers.facebook.com/docs/reference/api/
But the issues you are going to face is that you have to authorise your "app" - think website when they use the terminology "app" - to give it permissions to access the information. This takes the form of a two step process. You have to create the app on the Facebook platform which can then access the API methods (only certain information can be got from the API methods without an authenticated app).
The second part is that the user themselves must then authenticate their facebook account against your app - this gives your app permission to access the user's information. In plain English it would go like this:
User visits your webpage; user must be logged into Facebook and must approve your app (this used to be called Facebook Connect for obvious reasons); the app and the user account are "connected"; the app can then use the api methods you've written to return information about the connected user
The beginning explanations of how to do this are here:
http://developers.facebook.com/docs/authentication/
The only way you can access a user's (non-public) information from outside of Facebook is via a connected app and user profile.

Categories