Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用FacebookGraphAPI获取所有成员列表(来自我自己的一个组)';I don’’我不能得到完整的列表——我的代码中哪一部分出错了?_Php_Facebook_Facebook Graph Api_Facebook Php Sdk - Fatal编程技术网

Php 使用FacebookGraphAPI获取所有成员列表(来自我自己的一个组)';I don’’我不能得到完整的列表——我的代码中哪一部分出错了?

Php 使用FacebookGraphAPI获取所有成员列表(来自我自己的一个组)';I don’’我不能得到完整的列表——我的代码中哪一部分出错了?,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我开始使用FacebookGraphAPI,并注意到当我试图从我的组(我拥有的)中获取所有成员列表时,回显了用户名,我只得到(大约)4900个用户作为输出-我的组中有15K+用户!!! 为了测试我对每个列表进行了var_dump-ed,它给了我127个数组,其中包含“more elements…”文本,因此我得出结论,回显列表是好的,但获取列表是错误的 我尝试使用Graph API资源管理器获取成员列表,它给出了相同的结果,错误的“下一步”链接带有奇怪的偏移量和限制参数,这些参数没有任何意义,

我开始使用FacebookGraphAPI,并注意到当我试图从我的组(我拥有的)中获取所有成员列表时,回显了用户名,我只得到(大约)4900个用户作为输出-我的组中有15K+用户!!! 为了测试我对每个列表进行了var_dump-ed,它给了我127个数组,其中包含“more elements…”文本,因此我得出结论,回显列表是好的,但获取列表是错误的

我尝试使用Graph API资源管理器获取成员列表,它给出了相同的结果,错误的“下一步”链接带有奇怪的偏移量和限制参数,这些参数没有任何意义,我也没有输入

这是我现在的代码(滚动到“这里很酷”):

这是一个已知的Facebook bug(2年多了),处于低优先级修复中


为了避免这种情况,我认为报废是唯一的最佳选择,不过,为了记录在案,这是自上次评论以来几乎一年后的错误报告,该错误仍然存在。我刚刚开始用这个SDK开发,知道这样的东西存在有点令人沮丧。请注意每个人-为了“帮助”facebook决定修复它,你们都应该订阅这个bug并评论说需要修复它。这是一个bug:developers.facebook.com/bug/267362886791339请大家注意——这是facebook的一个已知bug。为了“帮助”facebook决定修复它,你们所有人都应该订阅这个bug并评论你们需要修复它。这里是错误:developers.facebook.com/bugs/267362886791339
 <?php

    session_start();

  require_once( 'Facebook/FacebookSession.php' );
  require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
  require_once( 'Facebook/FacebookRequest.php' );
  require_once( 'Facebook/FacebookResponse.php' );
  require_once( 'Facebook/FacebookSDKException.php' );
  require_once( 'Facebook/FacebookRequestException.php' );
  require_once( 'Facebook/FacebookAuthorizationException.php' );
  require_once( 'Facebook/GraphObject.php' );
  require_once( 'Facebook/GraphUser.php' );
  require_once( 'Facebook/GraphSessionInfo.php' );
  require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
  require_once( 'Facebook/HttpClients/FacebookCurl.php' );
  require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
  require_once( 'Facebook/Entities/AccessToken.php' );
  require_once( 'Facebook/Entities/SignedRequest.php' );

  use Facebook\GraphUser;
    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\Entities\AccessToken;
    use Facebook\HttpClients\FacebookCurlHttpClient;
    use Facebook\HttpClients\FacebookHttpable;

  $app_id = '13434480350553256103140350';
  $app_secret = 'a866dcd372123fc87373a345cvvf34d0e70c3cdf0vvc13db4521basdd99';
  $redirect_url = 'http://localhost/test/YellowSpider/src/';

    FacebookSession::setDefaultApplication( $app_id, $app_secret );

  //helper for redirect
  $helper = new FacebookRedirectLoginHelper($redirect_url); 

  // Requested permissions for the app - optional
  $permissions = array(
    'email',
    'user_location',
    'user_birthday', 
    'user_groups'
  );


  // Check if existing session exists
  if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
    // Create new session from saved access_token
    $session = new FacebookSession( $_SESSION['fb_token'] );

      // Validate the access_token to make sure it's still valid
      try {
        if ( ! $session->validate() ) {
          $session = null;
        }
      } catch ( Exception $ex ) {
        // Catch any exceptions
        $session = null;
      }
  } else {
    // No session exists
    try {
      $session = $helper->getSessionFromRedirect(); ////Processes the redirect data from Facebook, if present. Returns a FacebookSession or null.
    } catch( FacebookRequestException $ex ) {

      // When Facebook returns an error
    } catch( Exception $ex ) {

      // When validation fails or other local issues
      echo $ex->message;
    }
  }




  // Check if a session exists
  if ( isset( $session ) ) {

    // Save the session
    $_SESSION['fb_token'] = $session->getToken();

    // Create session using saved token or the new one we generated at login
    $session = new FacebookSession( $session->getToken() );


      /********************************* Cool Stuff Here *****************************************/


      $request = new FacebookRequest($session, 'GET', '/1501313558474010996619/members'); //Represents a request that will be made against the Graph API.

      //From the response - get graph object
      $response = $request->execute(); //Returns a Facebook\FacebookResponse from this request, from which a strongly-typed result can be retrieved. 
                                       //Throws an exception if the request fails. If the error is returned from Facebook, 
                                       //as opposed to a networking issue, a Facebook\FacebookRequestException is thrown.




      $graphObject = $response->getGraphObject()->asArray();
      var_dump($graphObject);
      while($response){  

        var_dump($graphObject['data']);


        //echo $members['id'];



        if($response->getRequestForNextPage() != null){

          $response = $response->getRequestForNextPage()->execute();
          var_dump($response->getRequestForNextPage());
          continue;
        }else{
          break;
        }
      }








      /********************************* END Cool Stuff Here *****************************************/



    // Create the logout URL (logout page should destroy the session)
    $logoutURL = $helper->getLogoutUrl( $session, 'http://localhost/test/YellowSpider/src/' );

    session_destroy(); // added this, clears all sessions. 
    echo '<a href="' . $logoutURL . '">Log out</a>';

  } else {
    // No session

    // Get login URL
    $loginUrl = $helper->getLoginUrl( $permissions );

    echo '<a href="' . $loginUrl . '">Log in</a>';
  }