"bool" не содержит определения ошибки "id" в Facebook C# SDK
Я использую Facebook C# SDK (я думаю, v4) для моего приложения холста.
Последние 2 дня я получаю такую ошибку при попытке получить доступ к моему приложению на холсте в Facebook.
Эта ошибка не является постоянной и появляется только для некоторых пользователей.
Вот журнал:
СООБЩЕНИЕ: "bool" не содержит определения для "id"
ИСТОЧНИК: анонимно размещенная сборка DynamicMethods
QUERYSTRING: fb_source=bookmark_apps&ref=bookmarks&count=0&fb_bmpos=3_0
ФОРМА: signed_request = PiF_P1VgfghdfWryycfyS-OFaZOTsNB_rP7up2OsTQ.eyJhbGdvcml0aG0ifhfhfghjhgNiIsImV4cGlyZXMiOjEzMzQ3NDMyMDAsImlzc3VlZF9hdCI6MTMzNDczOTM5NSwib2F1dGhfdG9rZW4iOiJBQUFDUDZGertyertyING9aQ0YyQWNhNEVaQUtLMVZkVGIzOWVNTTZaQkFaQmJ2Q3oyMVMwNXFmV0R6SmlkQjNsRXgwWkFjMHpKUDJ6QlZoWTZ4am1RNUlpSUFmbzZNQnlXN3kxQnVhhpNRVBiV4ggY7IiwidXNlciI6eyJjbdghdfghdfaWwiLCJsb2NhbGUiOiJoZV9JTCIsImFnZSI6eyJtaW4iOjIxfX0sInVzZXJfaWQiOiIxMyumhjmhgjMzQzNjI3ODYifQ
TARGETSITE: System.Object CallSite.Target (System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, System.Object)
STACKTRACE: в CallSite.Target(Closure, CallSite, Object) в System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](сайт CallSite, T0 arg0) в CallSite.Target(Closure, CallSite, Object) в en_bubbles_Default.Show в c:\hshome\Default.aspx.cs: строка 93 в en_bubbles_Default.Page_Load(Отправитель объекта, EventArgs e) в c:\hshome\Default.aspx.cs: строка 29
А вот код: var fb = new FacebookWebClient(); var app = new FacebookOAuthClient(FacebookApplication.Current);
dynamic ac = app.GetApplicationAccessToken();
string accessToken = fb.AccessToken.ToString();
dynamic myInfo = fb.Get("me");
Session["fbid"] = myInfo["id"];
Ошибка в последней строке
Кто-нибудь может сказать, что происходит?
Спасибо
1 ответ
Вызов Get("me") не возвращает ожидаемый объект, у которого есть свойство "id", вместо этого динамический объект myInfo - просто тип bool. И bool может быть только правдой или ложью. Вы определили, при каких обстоятельствах вы видите это. Я подозреваю, что это будет с перебоями. Возможно, вам следует просто проверить, является ли myInfo bool, и отменить или повторить операцию, если она есть.