Home » Php » php – Facebook API Responses Very Slow (oAuth)

php – Facebook API Responses Very Slow (oAuth)

Posted by: admin July 12, 2020 Leave a comment


I am doing some benchmark testing on my web app and notice that the responses from Facebooks API are a lot slower than Twitters.

** For the record, I am using the twitter-async library for Twitter API integration and Facebooks own library here

With the Twitter library I can save an oAuth token & secret, I then use these to create an instance and make calls, simple. For Facebook, unless I ask for offline_permission, I must store an oAuth code and recreate an oAuth access token each time the user logs into my app.

Given the above I can:

Retrieve a Twitter users timeline in 0.02 seconds.

Get a FB oAuth Access Code in 1.16 seconds, then I can get the users details in 2.31 seconds, totalling 3.47 seconds to get the users details.

These statistics are from using functions Facebook has provided in their PHP API library. I also tried implementing my own CURL functions to get this information via a request and the results are not much better.

Is this the same kind of response times others are getting using the Facebook API?

Besides requesting offline permission and storing the permanent access token, how else can I speed up these requests, is the problem on my end or Facebooks?



How to&Answers:

I also have the experience the Facebook API is quite slow. I believe the facebook PHP API does not much more than wrap around CURL in the case of API calls so it makes sense that this didn’t improve the speeds.

I work on a canvas page, which means for existing users, I get an access token and fb_UID as he/she comes in. At first, I did a /me graph call and sometimes a /me/friends. The first takes like 0.6 secs, the second usually a bit more. So in that case I can (to some extend) confirm your findings.

That’s why I’ve now switched to storing important stuff locally and updating it only when needed (real time update API). Basically, I don’t need any API calls during ‘normal’ operation.

I realize you are probably integrating FB on your own page, and perhaps use a bit more info than just name, fb-UID & friends, and that this solution is not totally answering your question. But perhaps it can still function as a small piece of the puzzle 😉

I am looking forward to other perspectives on this as well!


My application calls multiple URL’s from Facebook. It does take some time :/
This is why I decided to write a function which stores the results in $_SESSION so I can use it again later, along with a timestamp to see if the data is too old.

This doesn’t solve the actual problem, it just saves you having to keep fetching it.

What I like to do for end user experience, is forward them to page with a loading .gif – then have javascript request the page that actually fetches data. That way, the user remains on a loading page with a nice gif to stare at, until the next page is ready.