虽然我使用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秒!太多..这是页面上唯一的一个(你可以尝试运行它看看)。
我该怎么办? (如果我通过api使用FQL [作为方法fql.query]它不会改善运行时间,我检查了它)我必须使用图形api。
顺便说一下,我正在使用PHP SDK 3.0.1(最新版本......也许这就是问题?)
答案 0 :(得分:2)
你是否意识到你正在循环中进行远程呼叫?它将逐个进行几次远程调用,这就是为什么它的速度很慢。 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,最好让您的应用程序被阻止。
答案 1 :(得分:1)
对于图api的这一部分你不需要api,所以不要使用它。只需通过curl和json_decode获取http://graph.facebook.com/Intel
。
或者如果你可以使用它
$data = json_decode(file_get_contents('http://graph.facebook.com/Intel'));