У меня проблема с обработкой больших идентификаторов пользователей Facebook и их правильным хранением в моей базе данных.
Поскольку API-интерфейс REST fql.query устарел, я использую API GRAPH для получения результатов FQL.
Я хочу получить список моих друзей с сексом, relations_status.
Я выполнил запрос
$allFriends = $facebook->api("/fql
?q=SELECT+uid,+name,+sex,+relationship_status+FROM+user+where+uid+in+
(SELECT+uid2+FROM+friend+WHERE+uid1+=$fbuid)"
);
Я попробовал вышеупомянутое в Graph API Explorer, и результат примерно такой,
{
"data": [
{
"uid": 100003082853071,
"name": "Sam jones",
"sex": "male",
"relationship_status": null
}
]
}
Обратите внимание, что uid возвращается как int , поэтому всякий раз, когда я печатаю сам массив, он имеет такие значения, как (1.34234422 + E03). Так что даже json_encode для этого массива не помогает.
Но когда я вызываю GRAPH API напрямую что-то вроде 'graph.facebook.com/1585213/friends
', которое возвращает данные как
{
"data": [
{
"name": "Vijay Kannan",
"id": "102937142343"
}
]
}
Обратите внимание, что идентификатор возвращается как строка ..
Всякий раз, когда я использую вызов API графа для запроса FQL, он возвращает все данные в виде ' Array ', поэтому длинные большие пользовательские идентификаторы Facebook преобразуются в тип float (1.34234422 + E03) ,
Как я могу преобразовать их в надлежащие uid и сохранить / обработать их обратно.
Я думаю, что о несогласованности вызовов API FQL и GRAPH следует также позаботиться о Facebook ... Но я не мог дождаться этого !!
Есть идеи по этому поводу?