Facebook-запрос с использованием uid с показателем степени - PullRequest
1 голос
/ 13 декабря 2011

Мне удалось получить id друзей с помощью FQL-запроса в моем PHP-скрипте.

Но некоторые из них выглядят как 1.0000127513707E+14 вместо 100001275137067. Например, я хотел бы получить понравившиеся ему музыкальные страницы, которые я буду использовать:

https://graph.facebook.com/friendId/music?access_token=...

URL не возвращает ничего, когда friendId похож на 1.0000127513707E + 14

Спасибо за прослушивание!Есть идеи?

<?php

// $me, $search and $access_token are $_POST variables

// my FQL query - I select the uid and the name of my friends
$fql_query_url = myUrlEncode('https://graph.facebook.com/fql?q=SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = "' . $me . '") AND strpos(name,"' . $search . '") >= 0&access_token=' . $access_token);

// getDataFromUrl() is the equivalent of file_get_contents()
$fql_query_url_result = getDataFromUrl($fql_query_url);
$fql_query_url_array = json_decode($fql_query_url_result);

// Number of index
$length_fql_query_url_array = count($fql_query_url_array->data);

if (count($fql_query_url_array->data) > 0) {
  for ($i = 0; $i < $length_fql_query_url_array; $i++) {

    // I display the current friend (name + uid)
    echo '<p>' . $fql_query_url_array->data[$i]->name . '</p>';
    echo '<p>' . $fql_query_url_array->data[$i]->uid . '</p>';

    // I store the current uid
    $wanted_uid = $fql_query_url_array->data[$i]->uid;

    // I retrieve the friend's likes of Music page
    $get_friendMusic = getDataFromUrl('https://graph.facebook.com/' . $wanted_uid . '/music?access_token=' . $access_token);
    $get_friendMusic = json_decode($get_friendMusic);
    $get_friendMusic = objectToArray($get_friendMusic);

    // If there are contents
    if (count($get_friendMusic['data']) != NULL) {
      $get_friendMusic_length = count($get_friendMusic['data']);
      for ($j = 0; $j < $get_friendMusic_length; $j++) {
        $get_friendMusic_names[] = $get_friendMusic['data'][$j]['name'];
      }
    } else {
      $get_friendMusic_names = 'No information';
    }
  }
} else {
  echo 'no result';
}
?>

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Это

$uid = '100000414144463';

Вместо

$uid = 100000414144463;

Без кавычек это число с плавающей запятой / целое число, с ним - строка.

0 голосов
/ 13 декабря 2011

использование printf

printf("%14.0f", 1.00000145202E+14);

Выход:

100000145202000

Для вашего случая измените эту строку:

$get_friendMusic = getDataFromUrl('https://graph.facebook.com/' . $wanted_uid . '/music?access_token=' . $access_token);

этим:

$get_friendMusic = getDataFromUrl('https://graph.facebook.com/' . sprintf("%.0f", $wanted_uid) . '/music?access_token=' . $access_token);
...