コードからわかるように、FQLクエリを実行して結果を取得しようとしています。私が生成するクエリは、ブラウザでテストしたので、まったく問題ありません。最初にfile_get_contents()を使用してWebページを取得しましたが、400 BadRequestErrorが発生していました。代わりに誰かがcURLを提案します。
以下に示すコードセグメントは、$queryに対してfalseを返します。urlencode()行のコメントを外すと、スクリプトが繰り返し実行され、最大実行時間制限に達します。私は何が間違っているのですか?
$limit = $start + 100;
$query = "select post_id, created_time, actor_id, message, attachment, comments, likes, type from stream where source_id = $id limit $start, ". $limit;
$url = "https://graph.facebook.com/fql?q=$query&access_token=$token";
//$url = urlencode($url);
echo $url.'<br>';
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_PROXY, "tcp://10.3.3.3:8080");
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Hi!');
$query = curl_exec($curl_handle);
var_dump($query);
curl_close($curl_handle);
編集:別のURLにアクセスすると、file_get_contentsで「ストリームを開くことができませんでした:プロキシ経由でHTTPSサーバーに接続できません」というエラーが発生しました。これもHTTPSであるため、cURLも同じ問題に直面している可能性があります。これが答えにつながるのではないかと思いました。