2010-04-23 44 views
1

我有這樣的一段代碼,其工作90%的時間:Facebook的連接 - api_client-> users_getInfo拋出錯誤不能使用字符串數組offset

 
$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','proxied_email')); 
$firstName=$user_details[0]['first_name']; 

但有時我得到這個錯誤:

 
Fatal error: Cannot use string offset as an array for line 
$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']; 
} 

另外,如果我沒有得到的名字 - 是不是因爲超時問題還是其他什麼東西的?

感謝

+0

我也同時希望在我的錯誤日誌碰上這個問題幾次。我沒有添加更詳細的日誌來捕捉它。只是認爲這是由於無效的fb_id或什麼。我今晚晚些時候會檢查一下。 – Jayrox 2010-04-23 21:40:00

+0

Gublooo,我仍然在等待它再次發生;我沒有改變那部分流程中的任何東西。只是想檢查一下讓你知道我還沒忘記。 – Jayrox 2010-04-30 05:34:27

+0

感謝 - 它非常奇怪 - 對於同一個用戶 - 我試過它像30次和29次它工作正常 - 它只發生過一次 - 所以我不知道如何重複它 - 儘管我的2個測試用戶報告過這個問題給我,當我檢查他們的帳戶 - 臉書還沒有返回他們的名字......如此丟失 – Gublooo 2010-05-01 00:57:50

回答

0
 
$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']; 
      } 
0

只需修改php.ini和設置參數或添加:

magic_quotes_gpc = Off 
+0

我不知道如何解決這個問題,因爲magic_quotes_gpc已經關閉。 – Jayrox 2010-06-20 05:09:02