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);
}