Facebook share count - проблема с FQL с разными URL - PullRequest
0 голосов
/ 07 марта 2011

У меня на странице есть плагин, который позволяет пользователям обмениваться статьями на моем сайте в Facebook, но к каждому URL добавляется их идентификатор пользователя.

То, что я хочу сделать, это подсчитать количество общего ресурса независимо от идентификатора пользователя участника.

Однако я не могу заставить работать FQL, так как параметр where не будет принимать функцию LIKE ..

страницы будут выглядеть примерно так:

page1.php? С.и.д. = 2 page1.php? SID = 34 page1.php? с.и.д. = 12

Но я хочу получить общее количество ресурсов для page1.php независимо от sid.

Функция LIKE не работает в FQL, у кого-нибудь есть идеи, как я борюсь

текущий код:

https://api.facebook.com/method/fql.que… ge1.php% 27

1 Ответ

1 голос
/ 01 июня 2011

Вы можете использовать FQL для выполнения запроса:

$fql = 'SELECT total_count FROM link_stat WHERE url="http://google.com"';
$json = file_get_contents('https://api.facebook.com/method/fql.query?format=json&query=' . urlencode($fql));
$data = json_decode($json);
echo $data[0]->total_count;

Здесь total_count дает вам количество акций для ссылки.

Если у вас есть несколько URL для запроса,Вы можете сделать все это только в одном запросе, используя OR:

SELECT url, total_count FROM link_stat WHERE url="..." OR url="..."

Вот пример, вы хотите получить количество акций для этих трех URL:

$urls = array(
    "http://www.example.com/page1.php?sid=2",
    "http://www.example.com/page1.php?sid=12",
    "http://www.example.com/page1.php?sid=34",
);

function wrap($url) {
    return 'url="' . $url . '"';
}

$fql = 'SELECT url, total_count FROM link_stat WHERE ';
$fql .= implode(" OR ", array_map("wrap", $urls));

$json = file_get_contents('https://api.facebook.com/method/fql.query?format=json&query=' . urlencode($fql));
$data = json_decode($json);

И $data - это массив из 3 объектов с номером общего ресурса для каждого URL:

array(4) {
  [0]=> object(stdClass)#2 (2) {
    ["url"]=> string(17) "http://www.example.com/page1.php?sid=2"
    ["total_count"]=> int(1318598)
  }
  [1] => ...
  [2] => ...
  [3] => ...
}

Тогда вам просто нужно пройти через массив, чтобы составить сумму.

Надеюсьэто помогает!

...