我正在使用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的调用会卡住吗?谢谢!
底部循环显示用户的头像。底部的循环很好。
底部循环也是如此。
知道为什么对Facebook Graph的调用会卡住吗?
Graph API很好,不用担心。
您将在数据库查询结果上循环一次,以获得用户详细信息并回显其性别。
在此之后,DB查询结果结束,没有更多的行需要获取。
这使得第二个while
循环的条件在第一次检查时变为false
,因此循环内容甚至不执行一次。
你为什么要在那里放第二个while循环呢?您正在访问相同的列值在那里的第一个循环-所以为什么不把两个代码块的内容到一个代码块后的一个 while
关键字?