Handling big user IDs returned by FQL in PHP

后端 未结 6 2197
时光说笑
时光说笑 2020-11-29 09:30

I\'m using FQL to retrieve a list of users from Facebook. For consistency I get the result as JSON. This causes a problem - since the returned JSON encodes the user IDs as n

6条回答
  •  不知归路
    2020-11-29 09:46

    I've resolved the issue by adding &format=json-strings to my the FQL api call, like so:

    $myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
    $facebook->api("/fql?q=" . urlencode($myQuery) . "&format=json-strings")
    

    This tells facebook to wrap all the numbers in quotes, which leads json_decode to use neither int-s not floats.

    Because I was afraid this issue is not restricted to FQL but to all graph API calls that choose to represent some of the IDs as BIG-INTs I've went as far as patching facebook's PHP SDK a bit to force Facebook to return all of its numbers as strings.

    I've added this one line to the _graph function. This would be line 738 in facebook_base.php, version 3.1.1

    $params['format'] = 'json-strings';
    

    Sure fix

提交回复
热议问题