给定密钥不存在ERROR

时间:2011-03-16 08:42:02

标签: facebook-c#-sdk

当我尝试使用以下内容获取用户数据时

动态myInfo = fb.Get(“我”)

方法我已经听过这个消息:

字典中没有给定的密钥。

此错误仅发生在少数用户身上,但我仍然需要修复它。

这些是我试图从Facebook上阅读的价值观:

myInfo [“id”],myInfo [“first_name”],myInfo [“last_name”],myInfo [“email”],myInfo [“name”],myInfo [“gender”],myInfo [“locale” ]

有什么想法可以解决这个错误吗?

2 个答案:

答案 0 :(得分:2)

我猜你要求的某些数据字段不适用于某些用户,很可能是他们的电子邮件地址,因为这需要对您的应用程序提供“电子邮件”扩展权限(所有其他数据字段都是根据{公开提供的{3}})。

最好在尝试访问myInfo之前检查密钥是否存在,如下所示:

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

您还可以使用此检查来记录哪些用户无法使用哪些密钥,这些密钥可以帮助您调查任何其他潜在问题。

答案 1 :(得分:0)

我使用Andy的建议来实现具有这种结构的代码模式:

// 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;
}