当我尝试使用以下内容获取用户数据时
动态myInfo = fb.Get(“我”)
方法我已经听过这个消息:
字典中没有给定的密钥。
此错误仅发生在少数用户身上,但我仍然需要修复它。
这些是我试图从Facebook上阅读的价值观:
myInfo [“id”],myInfo [“first_name”],myInfo [“last_name”],myInfo [“email”],myInfo [“name”],myInfo [“gender”],myInfo [“locale” ]
有什么想法可以解决这个错误吗?
答案 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;
}