2017-08-02 31 views
-1

我正在使用Facebook分页,我已经搜索过但没有得到相关答案。 首先我取10结果和onclick功能后我想未来10分的结果为这个我传递抓取 -facebook分页使用next()网址错误

[寻呼] =>

阵列 (

[previous] => https://graph.facebook.com/v2.9/....D&__previous=1 

    [next] => https://graph.facebook.com/........ 

作为参数,我也尝试传递下一个URL作为参数,但它仍然不工作,如果我通过$ feedEdge作为关联我得到的响应为空,下面是我的代码

$response = self::$_FBINSTANCE->get('/me/feed?fields=id,message&limit=' . $_pagination->limit); 

     if(empty($_nextFeed)){ 
      $feedEdge = $response->getGraphEdge(); 
      $nextFeed = $response->getGraphEdge()->getMetaData(); 
     }else{ 
      $feedEdge=$response->next($_nextFeed); 
      $nextFeed = $response->getGraphEdge()->getMetaData(); 
     } 
     $result = array(); 
     foreach ($feedEdge as $status) { 
      $result[] = $status->asArray(); 
     } 
     return array(
      'result' => $result, 
      'totalRows' => $totalCount, 
      'nextFeed' => $nextFeed 
     ); 

使用v2.9版本,我应该为$ response-> next()传递什么参数。如果我错了,帮助我。

+0

为什么想要到_meta data_中送入下一个()?它需要是图形边缘对象本身。 – CBroe

+0

雅,但如果我通过'nextFeed'=> $ feedEdge我得到的回应为空 – Vijaylaxmi

+0

@CBroe,先生,如果我通过'nextFeed'=> $ feedEdge的响应将是对象{}。我解码$ feedEdge然后响应将是Facebook的帖子数组,它不会包含分页数组...你能请指导我进一步进行? – Vijaylaxmi

回答

0

我发现这个问题的解决方案...

如果有人尝试相同的尝试下面的代码。

 $result = array(); 
     if(empty($_nextFeed)){ 
      $response = $fb->get('/me/feed?fields=id,message&limit=' . $_pagination->limit); 
      $feedEdge = $response->getGraphEdge(); 

      foreach ($feedEdge as $status) { 
       $result[] = $status->asArray(); 
      } 

      $nextFeed = $response->getGraphEdge()->getMetaData(); 
     }else{ 
      //to get until time stamp form next url 
      $nextURl=parse_url($_nextFeed['paging']['next']); 
      parse_str($nextURl['query'], $URL); 

      $response = $fb->get('/me/feed?fields=id,message&limit='.(($_pagination->limit)+1).'&until='.$URL['until']); 
      $feedEdge = $response->getGraphEdge(); 

      foreach ($feedEdge as $status) { 
       $result[] = $status->asArray();      
      } 
      //because result repeats last array of previous request 
      array_splice($result,0,1); 

      $nextFeed = $response->getGraphEdge()->getMetaData(); 
     } 

     return array(
      'result' => $result, 
      'totalRows' => $totalCount, 
      'nextFeed' => $nextFeed 
     ); 

它的工作原理:)