Facebook PHP SDKを使用する場合でも、curlを使用してデータをロードする場合$contents = file_get_contents("https://graph.facebook.com/$id?access_token=$accessToken")
でも、応答が返されるまでに約1秒かかります。
大量のIDのデータをチェックする必要がある場合、これは非常に遅いと見なされます。
ブラウザでFacebookのグラフのURLを入力すると、PHPの場合の10分の1の時間で、ほぼ瞬時に結果が得られます。
この問題の原因は何ですか。また、どのブラウザでも同じように高速化するにはどうすればよいですか。私はブラウザがそれを行うことができることを知っています。PHPでも高速化する方法が必要です。
IDEA:おそらくcURLで何かを設定する必要がありますか?
私が試したこと:
- PHPSDKを使用します。それは遅いです。そもそも使っ
file_get_contents()
てみたのは、PHPSDKが正しく設定されていないと思っていたからです。 - を使用し
setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
ます。違いはありませんでした。編集を受け入れた後:実際、これはカールハンドルを再利用することと相まって、後続のリクエストを非常に高速にしました。
編集:これは、リクエストの実行にかかる時間を測定するために使用したコードのペーストビンです:http: //pastebin.com/bEbuqq5g。マイクロ秒と言っていたテキストを秒に修正しました。これは、この質問のコメントで書いたものと同様の結果を生成するものです。FacebookのグラフはPHPでは非常に遅いです。私のペーストビンの例のように、アクセストークンの有効期限が切れていても、同様に時間がかかることにも注意してください。
編集2:sslに部分的に問題があるはずです。http://graph.facebook.com/4(httpSなし)のベンチマークを試してみたところ、3回のリクエストで1.2秒になりましたが、同じですが、httpsでは2.2秒かかりました。ただし、これは決して解決策ではありません。アクセストークンが必要なリクエストには、httpsを使用する必要があるためです。