данного ключа нет ОШИБКА - PullRequest
1 голос
/ 16 марта 2011

Когда я пытаюсь получить данные о пользователях с помощью:

dynamic myInfo = fb.Get ("me")

метод Я приветствовал это сообщение:

Указанный ключ отсутствует в словаре.

Эта ошибка возникает только у нескольких пользователей, но все же мне нужно ее исправить.

Это значения, которые я пытаюсь прочитать с Facebook:

myInfo ["id"], myInfo ["first_name"], myInfo ["last_name"], myInfo ["email"], myInfo ["name"], myInfo ["пол"], myInfo ["локаль" ]

Есть идеи, что может послужить причиной этой ошибки?

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Я полагаю, что некоторые поля данных, которые вы запрашиваете, отсутствуют для определенных пользователей, скорее всего, их адрес электронной почты, так как для этого требуется расширенное разрешение «электронной почты» для вашего приложения (все остальные поля данных общедоступны согласно 1001 * документация Facebook ).

Лучше всего проверить, существует ли ключ в myInfo, прежде чем пытаться получить к нему доступ следующим образом:

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

Вы также можете использовать эту проверку для регистрации того, какие ключи недоступны для каких пользователей, что поможет вам исследовать любые другие потенциальные проблемы.

0 голосов
/ 29 июня 2011

Я использовал предложение Энди для реализации шаблона кода с такой структурой:

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