HWIOBundle FacebookConnect - 数据分页
HWIOBundle FacebookConnect - data pagination
我正在使用带有 HWIOAuthBundle 的 Symfony2。我设法获得了请求的数据(包括喜欢的页面),但是如果他们的数量超过 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
));
我不认为有直接使用捆绑包但 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);
}
我正在使用带有 HWIOAuthBundle 的 Symfony2。我设法获得了请求的数据(包括喜欢的页面),但是如果他们的数量超过 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
));
我不认为有直接使用捆绑包但 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);
}