2011-03-16 124 views
1

當我試着使用,以獲得用戶數據:給定的密鑰不存在錯誤

動態MyInfo的= fb.Get(「我」)

方法我encoutered此消息:

給定的關鍵是不存在的字典。

此錯誤是隻與少數用戶happeing了,不過,我需要解決它。

這些都是我想從Facebook讀取值:

MyInfo的[ 「身份證」],MyInfo的[ 「如first_name」],MyInfo的[ 「姓氏」],MyInfo的[ 「電子郵件」], MyInfo的[ 「名稱」],MyInfo的[ 「性別」],MyInfo的[ 「區域設置」]

任何想法可能cuase這個錯誤?

+0

這裏冒險猜測:關鍵是不在字典? – Amy 2011-03-16 08:48:41

回答

2

我猜一些您所請求的數據字段不存在對某些用戶來說,最有可能他們的電子郵件地址,因爲這需要「電子郵件」擴展權限到您的應用程序(所有其他數據字段是公開的根據Facebook documentation)。

這將是最好的檢查,關鍵在MyInfo的存在,試圖訪問它像這樣前:

if (myInfo.ContainsKey("email") == true) 
{ 
    do something with email 
} 

你也可以使用這個檢查要記錄的鍵不適用於哪些用戶,這將有助於你調查任何其他潛在的問題。

0

我用安迪的建議,以實現這一結構的代碼模式:

// create a "me" object 
JSONObject me = fb.Get("me"); 

// get first name 
string firstName = string.Empty; 
if (me.Dictionary.ContainsKey("first_name")) 
{ 
    firstName = me.Dictionary["first_name"].String; 
}