0

我正在使用 Facebook Graph API 从 Facebook 用户列表中获取性别。我有用户的 ID(他们是我的应用程序的当前用户)。为此,我不需要使用 API,因为性别不需要特殊权限(即使我已经获得了基本信息权限)。基本上,我使用while循环来遍历MySQL表上的所有行,该表存储了我在用户使用应用程序时抓取的FB id。当我在 while 循环之外执行 json_decode 代码时,效果很好(但显然只抓取了表中的第一个实例)。然后当我把它放在一个循环中时,页面就不会加载。它只是坐着并试图永远加载。这是代码:

$sql = "SELECT * FROM fb_id ORDER BY timestamp DESC";
$result = $mysqli->query($sql);                     

while($row = mysqli_fetch_array($result)){
                    $jsonurl = "https://graph.facebook.com/".$row['fb_id'];
                    $json = file_get_contents($jsonurl,0,null,null);
                    $json_output = json_decode($json);
                    $user_gender = $json_output->gender;
                    echo $user_gender;
                    }

                    while($row = mysqli_fetch_array($result)){
                    echo "<a href='http://www.facebook.com/".$row['fb_id']."' target='_blank'><img src='http://graph.facebook.com/".$row['fb_id']."/picture/' /></a>";
                    }

您会看到代码的顶部是针对性别的。底部循环是显示用户的个人资料图片。那个底部循环工作正常。

任何想法为什么对 Facebook Graph 的调用会卡住?谢谢!

4

1 回答 1

2

底部循环是显示用户的个人资料图片。那个底部循环工作正常。

底部循环也是如此。

任何想法为什么对 Facebook Graph 的调用会卡住?

Graph API 很好,不用担心。

您正在对数据库查询结果进行一次循环,以获取用户详细信息并回显他们的性别。

之后,数据库查询结果结束,不再需要获取任何行。

这使得第二个while循环的条件成为false第一次检查,因此循环内容甚至不会执行一次。

你为什么要在那里放第二个while循环?您正在访问与第一个循环中相同的列值 - 那么为什么不将两个代码块的内容放在一个关键字之后的一个代码块中呢? while

于 2012-12-21T22:19:01.103 回答