Я решил проблему, добавив &format=json-strings
к моему вызову API FQL, например:
$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api("/fql?q=" . urlencode($myQuery) . "&format=json-strings")
Это говорит Facebook обернуть все числа в кавычки, что приводит к тому, что json_decode не использует ни
int-s не плавает.
Поскольку я боялся, что эта проблема не ограничивается FQL, а всеми вызовами API графа, которые выбирают для представления некоторых идентификаторов в качестве BIG-INT, я пошел до того, что немного исправил PHP SDK Facebook, чтобы заставить Facebook вернуться все его числа в виде строк.
Я добавил эту одну строку в функцию _graph
.
Это будет строка 738 в facebook_base.php, версия 3.1.1
$params['format'] = 'json-strings';
Конечно исправить