Архив метки: api

Изменения в Facebook API с 30 апреля 2015 года

Operation Developer Love. Подавление разработчиков в любовном порыве

30 апреля 2015 года вступят в силу, пожалуй, самые драматичные изменения в Facebook API за всю его историю. Они коснутся всех без исключения разработчиков. В сущности, это не столько изменения, сколько ограничения, которые для многих приложений будут означать либо прекращение их существования, либо существенное урезание функционала (которое, опять же, поставит под вопрос смысл их существования).

Нам тоже придется отказаться от фейсбучного функционала на крупном проекте. Я посмотрел сегодня — у нас порядка 30 тысяч пользователей воспользовались этим функционалом за все время, и теперь его не будет. Фейсбук хочет, чтобы все просто сидели в Фейсбуке. В интернете OpenGraph уже называют ClosedGraph, что достаточно точно отражает суть происходящего.

Итак, что же произойдет 30 апреля?
Читать далее 

Тормоза Facebook API

Facebook API оказался нереально медленным. Сидя в России, конечно, чувствуешь, как немного медленнее, чем хотелось бы, Фейсбук работает для пользователя, но вот его API просто побил все рекорды. Я забираю сопоставимый набор информации из ВКонтакте и из Фейсбука. В обоих случаях есть возможность объединить несколько запросов в один. Про VK уже писал, и там информация немного устарела — теперь выполняется не два запроса, а один составной, в среднем за 0,15...0,2 с. С Фейсбуком получается 2...2,5 с, что совершенно неприемлемо. Мне и полсекунды много, а тут две. Даже когда запускаешь какой-нибудь FQL-запрос в Graph API Explorer, видно, как мучительно он соображает.

Тяжеловесно, да.

На этот момент получается, что Фейсбук задерживает все остальное, так как сначала генерится страница целиком и только потом отдается пользователю. Нужно переводить все это дело на AJAX, но тогда, на первый взгляд, придется запускать несколько параллельных запросов, что усложняет схему. Пока думаю. И еще неясно, как это будет выглядеть на мобильных.

Лечение тормозов при обращении к API внешних сервисов

В любом проекте, где есть обращения к внешним API, именно их следует в первую очередь рассматривать как причину тормозов. Тормозит не коннект к базе, не ваша логика, не загрузка локальных файлов — все это мелочи по сравнению с любыми обращениями вовне. Поэтому важно минимизировать их количество.

Очень просто и некрасиво замерить временные интервалы в PHP можно так. Можно грубо оценить, что выполняется быстро, что — медленно; понять порядок величин.

В моем случае работа с API ВКонтакте состояла из 5 обращений к нему, что в сумме занимало (в среднем) почти 0,5 с. Если скорость загрузки страницы критически важна, это очень много. К счастью, у них в API есть замечательный метод execute, позволяющий не только объединять несколько запросов в один, но и использовать промежуточные результаты, не загружая их к себе (там несложный скриптовый язык). Сокращение 5 обращений до 2 дало двукратный выигрыш в скорости.