Ответы API Facebook очень медленные (oAuth) - PullRequest
8 голосов
/ 24 марта 2011

Я провожу некоторое тестирование производительности в своем веб-приложении и замечаю, что ответы от API Facebook'а намного медленнее, чем Twitters.

** Для записи я использую twitter-async библиотека для интеграции с Twitter API и собственная библиотека Facebook здесь

С помощью библиотеки Twitter я могу сохранить токен и секрет oAuth, а затем использовать их для создания экземпляра и выполнения вызовов,просто.Для Facebook, если я не запрашиваю offline_permission, я должен сохранять код oAuth и заново создавать токен доступа oAuth каждый раз, когда пользователь входит в мое приложение.

Учитывая вышеизложенное, я могу:

ПолучитьВременная шкала пользователей Twitter в 0,02 секунды .

Получить код доступа FB oAuth за 1,16 секунды , затем я могу получить информацию о пользователях в 2,31 секунды , всего 3,47 секунд , чтобы получить информацию о пользователях.

Эта статистика основана на использовании функций, которые Facebook предоставил в своей библиотеке PHP API.Я также пытался реализовать свои собственные функции CURL, чтобы получить эту информацию через запрос, и результаты не намного лучше.

Это тот же самый тип ответов, который другие получают с помощью API Facebook?

Помимо запроса разрешения в автономном режиме и хранения маркера постоянного доступа, как еще я могу ускорить эти запросы, это проблема на моем конце или в Facebook?

Спасибо,

Крис

Ответы [ 2 ]

7 голосов
/ 24 марта 2011

У меня также есть опыт, API Facebook довольно медленный.Я полагаю, что PHP API для Facebook не намного больше, чем обход CURL в случае вызовов API, поэтому имеет смысл, что это не улучшило скорость.

Я работаю на странице холста, что означает для существующихпользователи, я получаю токен доступа и fb_UID, когда он / она входит. Сначала я звонил в / me, а иногда в / me / friends.Первый занимает около 0,6 с, второй обычно немного больше.Так что в этом случае я могу (в некоторой степени) подтвердить ваши выводы.

Вот почему я теперь переключился на хранение важных вещей локально и обновлял их только при необходимости (API обновления в реальном времени).По сути, мне не нужны вызовы API во время «нормальной» работы.

Я понимаю, что вы, вероятно, интегрируете FB на своей странице и, возможно, используете немного больше информации, чем просто имя, fb-UID и друзьяи что это решение не полностью отвечает на ваш вопрос.Но, возможно, он все еще может функционировать как маленький кусочек головоломки;)

Я с нетерпением жду и других перспектив на этот счет!

0 голосов
/ 12 февраля 2012

Мое приложение вызывает несколько URL-адресов из Facebook.Это занимает некоторое время: / Вот почему я решил написать функцию, которая сохраняет результаты в $ _SESSION, чтобы я мог использовать ее позже, вместе с отметкой времени, чтобы увидеть, не слишком ли старые данные.

Это не решает реальную проблему, просто избавляет вас от необходимости извлекать его.

Что я хотел бы сделать для удобства пользователей - пересылать их на страницу с загрузкой .gif - тогда есть запрос javascriptстраница, которая на самом деле получает данные.Таким образом, пользователь остается на странице загрузки с хорошим gif-файлом, на который можно смотреть, пока не будет готова следующая страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...