0

我在使用 FQL 运行包含提供的“Large”(以 10000 开头..)用户 ID 的查询时遇到问题

这是一个不起作用的示例:

fql?q=SELECT uid, first_name,last_name,pic,pic_square,name 
        FROM user 
        WHERE uid=100002445083370

有没有办法封装长数字,以便将其作为字符串传递?

这是另一个例子:

/fql?q=SELECT src_big 
    FROM photo 
    WHERE aid IN (SELECT aid 
                    FROM album 
                    WHERE  owner=100002445083370 AND type="profile") 
    ORDER BY created DESC LIMIT 1

有没有人能够解决这个问题?我也在图形资源管理器中测试查询,但也没有运气。

4

2 回答 2

2

我明白问题是什么了

我试图传递的用户 ID 应该是:“100002445083367”,但是通过查询朋友列表并获取他们的用户 ID,我得到了“uid”:1.0000244508337e+14,它被缩短为:100002445083370( php 删除 e+14) 抛出第二个查询。我需要确保我抓取的 id 在我从 PHP 和 Javascript 来回传递时保持为字符串值而不是数字。

问题在于 PHP 处理 JSON_DECODE 的方式。我不得不修改 Facebook PHP SDK 并在 json_decode 之前添加一个 preg_replace。它将确保 json_decode 不会通过首先将大整数转换为字符串来将它们转换为浮点数。

这是代码:base_facebook.php 的第 803 行:

$result = json_decode(preg_replace('/("\w+"):(\d+)/', '\\1:"\\2"', $this->_oauthRequest($this->getUrl($domainKey, $path),$params)), true);

这里是关于这个主题的更多信息:http: //forum.developers.facebook.net/viewtopic.php?id=20846

于 2012-02-17T15:51:28.560 回答
0

“不工作”是什么意思?
该查询在 Graph API 资源管理器中对我有用,但响应是

{
  "data": [
  ]
}

我认为用户 ID 无效; https://www.facebook.com/profile.php?id=100002445083370给我一个“找不到页面”错误。

于 2012-02-17T03:51:42.180 回答