Facebook connect-api_客户端->;用户\u getInfo抛出错误无法将字符串偏移量用作数组

Facebook connect-api_客户端->;用户\u getInfo抛出错误无法将字符串偏移量用作数组,facebook,Facebook,我有一段代码,90%的时间都能正常工作: $user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','proxied_email')); $firstName=$user_details[0]['first_name']; $user\u details=$fb->api\u client->users\u getInfo($fb\u user,数组('last\u name','f

我有一段代码,90%的时间都能正常工作:

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','proxied_email')); $firstName=$user_details[0]['first_name']; $user\u details=$fb->api\u client->users\u getInfo($fb\u user,数组('last\u name','first\u name','proxied\u email'); $firstName=$user_details[0]['first_name']; 但有时我会犯这样的错误:

Fatal error: Cannot use string offset as an array for line $firstName=$user_details[0]['first_name']; 致命错误:无法将字符串偏移量用作行的数组 $firstName=$user_details[0]['first_name']; 我读过好几个人报告了同样的问题——但我仍然不清楚原因是什么——我得到这个错误是因为facebook没有返回任何结果,还是因为它只返回一个数组而不是数组数组

这就是我想到的解决方案:

if (!is_array($user_details)) { $firstName=''; } else { $firstName = ($user_details[0]) ? $user_details[0]['first_name'] : $user_details['first_name']; } 如果(!is_数组($user_详细信息)){ $firstName=''; } 其他的 { $firstName=($user_details[0])?$user_details[0]['first_name']:$user_details['first_name']; } 另外,如果我没有得到名字-是因为超时问题还是其他原因


谢谢

只需修改
php.ini
并设置参数或添加:

magic_quotes_gpc = Off
$user\u details=$fb->api\u client->users\u getInfo($fb\u user,数组('last\u name','first\u name','proxied\u email'); 如果(!is_数组($user_详细信息)){ $firstName=''; $lastName=''; } 其他的 { $firstName=($user_details[0])?$user_details[0]['first_name']:$user_details['first_name']; $lastName=($user\u details[0])?$user\u details[0]['last\u name']:$user\u details['last\u name']; }
在查看错误日志时,我曾多次遇到此问题。我还没有添加更详细的日志来捕捉它。只是假设这是由于一个无效的FBU id或其他原因。今晚晚些时候我会查一查。古布洛,我还在等它再次发生;我没有改变这部分流程中的任何内容。我只是想签入一个让你知道我没有忘记。谢谢-这很奇怪-对于同一个用户-我试了30次,29次效果很好-只发生了一次-所以我不知道如何重复-尽管我的两个测试用户向我报告了这个问题,当我检查他们的帐户时-facebook没有返回他们的帐户名字…有点失落,我不知道如何解决这个问题,因为magic_quotes_gpc已经关闭了。 $user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','proxied_email')); if (!is_array($user_details)) { $firstName=''; $lastName=''; } else { $firstName = ($user_details[0]) ? $user_details[0]['first_name'] : $user_details['first_name']; $lastName = ($user_details[0]) ? $user_details[0]['last_name'] : $user_details['last_name']; }