Хотя я использую Graph API для простого действия, например, например:
require 'src/facebook.php'; # facebook class $facebook = new Facebook(array( 'appId' => 'XXX', 'secret' => 'XXX', )); for ($i = 0; $i < 9; $i++) { $url = $facebook->api('/Intel'); echo $url['name'] . '<br />'; }
(просто быстрый пример, я хочу вернуть 9 разных страниц, но теперь это не имеет значения)
Ну, это действие заняло 9 – 10 СЕКУНД! слишком много .. и это единственная ацион на странице (вы можете попробовать запустить ее и посмотреть).
Что я могу сделать? (если я использую FQL через api [как метод fql.query], это не улучшает время выполнения, я проверил его) Я должен использовать график api.
Кстати, я использую PHP SDK 3.0.1 (новейшая версия .. может быть, это проблема?)
Вы понимаете, что вы делаете удаленный вызов в цикле? Он будет делать несколько удаленных вызовов один за другим, поэтому его медленный. API проклят быстро. Я бы предложил вам использовать FQL здесь и отправлять несколько запросов в пакетном режиме. Таким образом вы делаете один удаленный вызов и получаете данные из нескольких запросов вместе.
/** * FQL multiquery */ $multiquery_fql[ 'query1' ] = $query1; $multiquery_fql[ 'query2' ] = $query2; $multiquery_fql = json_encode( $multiquery_fql ); $multiquery_result = $facebook->api(array( "method" => "fql.multiquery", "queries" => $multiquery_fql, 'access_token' => '' // fill a generic token here (granted to app, independent of user) ));
И я всегда рекомендую использовать приложение. Лучше заблокировать ваше приложение, если что-то пойдет не так, как с IP.
для этой части графика api вам не нужен api, поэтому не используйте его. просто запустите http://graph.facebook.com/Intel
через curl и json_decode.
или если вы можете использовать его
$data = json_decode(file_get_contents('http://graph.facebook.com/Intel'));