/**
  * Returns an array of Person();
  *
  * @param array $ids
  * @param string $sortOrder
  * @param unknown_type $filter
  * @param integer $first
  * @param integer $max
  * @param array $profileDetails
  * @param Token $token
  * @return ResponseItem
  */
 public function getPeople($ids, $sortOrder, $filter, $first, $max, $profileDetails, $token)
 {
     // Call comes here
     //error_log("*****Query GET PEOPLE ID=[".implode(",",$ids)."] SORT=".$sortOrder." filter=$filter first=$first max=$max profileDetails=[".implode(",",$profileDetails)."] viewer=".$token->getViewerId()." owner ".$token->getOwnerId());
     $people = array();
     if (!is_numeric($first)) {
         $first = 0;
     }
     if (!is_numeric($max)) {
         $max = 1000;
     }
     $flds = $this->osFieldsToFb($profileDetails);
     // SortOrder can be ony topFriends or name, assume topFriends is by UID
     $orderBy = ' ';
     if ($sortOrder == 'name') {
         $orderBy = ' ORDER BY last_name,first_name';
     }
     // $filter is either all or hasApp
     $whereFilter = "";
     if ($filter == "hasApp") {
         $whereFilter = '  ';
     }
     // Max cannnot exceed 1000 at a time
     $fql = "SELECT " . $flds . " FROM user WHERE uid in (" . implode(',', $ids) . ") {$whereFilter}" . $orderBy;
     $client = $token->getAppClient();
     $resp = $client->fql_query($fql);
     foreach ($resp as $firstPerson) {
         $peep = new Person($uid, new Name($firstPerson['first_name'] . " " . $firstPerson['last_name']));
         // Populate this person with extra data
         $firstPersonKeys = array_keys($firstPerson);
         foreach ($firstPersonKeys as $fbKey) {
             if (array_key_exists($fbKey, $this->osMap)) {
                 $osKey = $this->osMap[$fbKey];
                 $fbValue = $firstPerson[$fbKey];
                 $osValue = $this->convertToOSArrayType($osKey, $fbValue);
                 $peep->{$osKey} = $osValue;
             }
         }
         RingsidePeopleService::enforceOpenSocialDatatypes($peep);
         $people[] = $peep;
     }
     $totalSize = count($people);
     //error_log($totalSize." People Returned.");
     $last = $first + $max;
     $last = min($last, $totalSize);
     $people = array_slice($people, $first, $last);
     $collection = new ApiCollection($people, $first, $totalSize);
     return new ResponseItem(null, null, $collection);
 }