我正在使用Symfony2和HWIOAuthBundle。我设法获取请求的数据(包括页面喜欢),但是如果他们的数量超过24并且用户有超过24页的喜欢,那么facebook api会发送next
属性,并使用URL调用如下:
...
[24]=>
array(4) {
["category"]=>
string(26) "Computers/Internet Website"
["name"]=>
string(10) "IOScreator"
["id"]=>
string(16) "1488441341444225"
["created_time"]=>
string(24) "2015-01-30T10:28:42+0000"
}
}
["paging"]=>
array(2) {
["cursors"]=>
array(2) {
["before"]=>
string(20) "MTEyOTU3ODQ1NDAwNzAw"
["after"]=>
string(24) "MTQ4ODQ0MTM0MTQ0NDIyNQ=="
}
["next"]=>
string(99) "https://graph.facebook.com/v2.0/10152896110784845/likes?limit=25&after=MTQ4ODQ0MTM0MTQ0NDIyNQ%3D%3D"
}
}
有人知道如何请求此捆绑中的下一页吗?
以下是我如何获得第一个回复:
$userProvider = $this->container->get('bundleName_user.oauth_provider');
$facebookResourceOwner = $this->container->get('hwi_oauth.resource_owner.facebook');
$accessToken = $request->get('accessToken');
$userResponse = $facebookResourceOwner->getUserInformation(array(
'access_token' => $accessToken
));
答案 0 :(得分:1)
我认为有一种方法可以直接使用捆绑包但HWIOBundle,但我有两种方法可以看到你这样做。
选项1:添加到FacebookResourceOwner.php
在这里,您可以添加另一个函数来发出请求,该函数将使用HWIOBundle中包含的库。类似的东西:
public function nextParamRequest($access_token, $nextURL) {
$response = $this->httpRequest($this->normalizeUrl($nextURL, array('access_token' => $access_token), array(), array())));
return $this->getResponseContent($response);
}
选项2:只需编写自己的cURL方法即可
在代码中的某处,只需添加以下内容:
function curlNextUrl($access_token, $nextURL) {
$request_url = $nextURL."&access_token=".$access_token;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $request_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response, true);
}