Поиск в Facebook с использованием PHP SDK - PullRequest
0 голосов
/ 29 октября 2011

В последние дни я работаю над приложением, которое должно искать пользователей в Facebook.Поскольку FQL-запрос для «имя пользователя» устарел / был отменен , я решил использовать общий API поиска.

Я использую PHP, поэтому FB PHP SDK Я бы предпочел.Я использовал его ранее для запросов FQL, вот так:

// $api is already initialized, with access_key, app secret and so on
$users = $api(array(
    'method' => 'fql.query',
    'query' => "SELECT first_name,last_name FROM user WHERE uid='12345'",
));

Я бы хотел построить поисковый запрос аналогичным образом.Особенно я не хочу урленкодировать параметры, указывать ключ доступа, секрет приложения и все то, что SDK должен сделать для меня.Однако я еще не смог создать этот запрос с помощью SDK.Есть ли возможность сделать это?Если да, то как?Я нашел длинный список поддерживаемых SDK "вызовов API", но мне нужно создать запрос для graph.facebook.com/search?arguments.

Заранее спасибо.


РЕДАКТИРОВАТЬ: Чтобы прояснить, я не хочу строить строку самостоятельно.Я знаю, что это решение работает.Но имхо уродливо, когда у меня есть SDK:

$name = urlencode(trim($first_name . " " . $last_name_));
$users = $this->facebook->api("/search?q=$name&type=user&access_token=$key");

1 Ответ

0 голосов
/ 29 октября 2011

Поиск пользователя через Graph API с использованием php-sdk 3.1.1

  • Пользователь должен будет авторизовать ваше приложение перед поиском пользователей.

{
   "error": {
      "message": "A user access token is required to request this resource.",
      "type": "OAuthException"
   }
}

  • Php-skd 3.1.1 init.

<?php 
require './src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'your-app-id',
  'secret' => 'your-app-secret',
));
$user = $facebook->getUser();
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

/*  */
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
?>

  • Поиск включает в себя, условие поиска кодирования, ограничение предела результатов исмещение для подкачки.

<code>    <?php 
    /* Get Search parameter from url or post and urlencode it. */
$q = urlencode($_GET['qs']);
if(!$_GET['qs']){
$q = urlencode($_POST['qs']);
    if(!$_POST['qs']){
            /* Default Search Term */
    $q = "Shawn+E+Carter";
    }
}
    /* Get Results Limit from url or set default. */
$limit = $_GET['limit'];
    if (!$_GET['limit']){
$limit = 60;
    }
    /* Get Offset from url or set default for paging. */
$offset = $_GET['offset'];
    if (!$_GET['offset']){
$offset = 0;
}
    /* Make Graph API call to user */
$usersearch = 'search%3Fq='.$q.'%26type=user%26limit='.$limit.'%26offset='.$offset.'';

    echo '<pre style="text-align: left;">';
    print_r($usersearch);
    echo '
';?>
...