facebookの大きなユーザーIDを処理し、データベースに正しく保存するのに問題がありました。FQLから返されたbig int facebook uidの処理方法は?
fql.query REST APIが非推奨となるため、私はGRAPH APIを使用してFQLの結果
私は性別の関係者のリストを取得したい、relationship_status。
私が実行されたクエリが
$allFriends = $facebook->api("/fql
?q=SELECT+uid,+name,+sex,+relationship_status+FROM+user+where+uid+in+
(SELECT+uid2+FROM+friend+WHERE+uid1+=$fbuid)"
);
で、UIDがint型として返されます。注
{
"data": [
{
"uid": 100003082853071,
"name": "Sam jones",
"sex": "male",
"relationship_status": null
}
]
}
、私はグラフAPIエクスプローラで上記を試してみましたが、結果はこのようなものですだから私は配列自体を印刷するたびに(1.34234422 + E03)のような値を持っています。その配列のjson_encodeでさえ助けになりません。
しかし、私は私が使用しているときは常にidが文字列として返され
{
"data": [
{
"name": "Vijay Kannan",
"id": "102937142343"
}
]
}
注意としてデータを返す「graph.facebook.com/1585213/friends
」のような直接的なもの..
GRAPHのAPIを呼び出すときFQLクエリのグラフAPIコールでは、データ全体を 'Array'として返すので、長い長いfacebookのuidは(1.34234422 + E03)のような浮動小数点数に変換されます。
どのように私はそれらを適切なuidのものに変換し、それらをストア/処理することができます。
私はFQLとGRAPH APIコールの不一致もFacebookによって気にするべきだと思っています。しかし、私はそれを待つことができませんでした!
これに関するご意見はありますか?
私は一度に多くの友人を得ています(通常100、さらには5000かもしれません)..返されたすべてのuidに対して、私は指数をチェックしてから仕事をしたり変換したりすることはできません。 – Vijay
なぜあなたはできませんチェック?解析する必要があるかどうかを知る必要があります。 – Johan
次に、指数部を見つけて各要素にsprinfを適用するコードを書く必要があります。このラウンドよりも簡単な解決策がいくつかあるはずです... – Vijay