我有一個函數,我正在創建基本連接到Google Plus API和Pulls信息。不幸的是,爲了一次獲得更多的結果,您需要使用API回調中提供的nextPageToken
。這是我到目前爲止:從內部調用PHP函數直到達到條件
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function parseResults($nextPageToken = "") {
$count = 0;
$content = get_data('https://www.googleapis.com/plus/v1/activities?query=%23throughglass&maxResults=10&orderBy=recent&fields=items(actor(displayName%2Curl)%2Cid%2Cobject(actor%2Cattachments)%2Curl%2Cverb)%2CnextPageToken&pageToken=' . $nextPageToken . '&key=YOUR API KEY HERE');
$posts = json_decode($content);
$token = $posts->nextPageToken;
foreach ($posts->items as $value){
$id = $value->id;
$id_query = mysql_query("SELECT id FROM images WHERE id = '$id'");
if ($value->verb != "post") continue;
if (mysql_num_rows($id_query) > 0) continue;
echo $value->actor->displayName . "<br />";
$count++;
}
if ($count < 20){
parseResults($token);
}else{
break;
}
}
parseResults();
如果你能看到我在這裏試圖做什麼,希望有人可以幫助我。我基本上想繼續使用提供的nextPageToken重新調用parseResults()函數,直到處理了20條記錄。
什麼問題呢?該功能是否有效?如果不是,怎麼樣? – Gordon 2013-05-11 16:44:53
傳遞'$ count'作爲第二個參數'function parseResults($ nextPageToken =「」,$ count = 0){'then'$ count = $ count == 0? 0:$ count;' – 2013-05-11 16:46:16
謝謝勞倫斯!在編輯您的評論之前,我確實做出了改變,並且它完美地工作!如果你想發佈它作爲答案,我可以給你它的聲譽。 :) – 2013-05-11 16:54:25