Я исследовал тему, упомянутую в названии. Решения говорят (кроме , это ), что исключение "Precondition failed: !string.IsNullOrEmpty(settings.AppId)"
, выданное FacebookWebContext.IsAuthorized()
, вызвано не установкой подписанного запроса, который можно получить из строки запроса.
Я занимаюсь разработкой веб-сайта ASP.NET MVC, в котором я хотел бы реализовать аутентификацию Facebook Connect. Часть аутентификации работает нормально, но если я пытаюсь проверить разрешения, которые пользователь дал приложению (либо с HasPermissions()
, либо с IsAuthorized()
), я получаю эту ошибку.
FacebookWebContext
правильно инициализируется с настройками приложения. И насколько я знаю, signed_request
доступен только в приложениях Canvas, или я не прав?
Как можно проверить разрешения на обычном веб-сайте после аутентификации пользователя?
Заранее спасибо!
Edit:
Вот подробности исключения, которое выдается:
System.Diagnostics.Contracts.__ContractsRuntime.ContractException occurred Message=Precondition failed: !string.IsNullOrEmpty(settings.AppId) Source=Facebook.Web StackTrace:
at System.Diagnostics.Contracts.__ContractsRuntime.TriggerFailure(ContractFailureKind kind, String message, String userMessage, String conditionText, Exception inner)
at System.Diagnostics.Contracts.__ContractsRuntime.ReportFailure(ContractFailureKind kind, String message, String conditionText, Exception inner)
at System.Diagnostics.Contracts.__ContractsRuntime.Requires(Boolean condition, String message, String conditionText)
at Facebook.Web.FacebookWebContext..ctor(IFacebookApplication settings, HttpContextBase httpContext)
at Facebook.Web.FacebookWebContext..ctor()
at Facebook.Web.FacebookWebContext.get_Current()
at Facebook.Web.FacebookWebClient..ctor(String accessToken)
at Facebook.Web.FacebookWebContext.HasPermissions(String accessToken, String appId, Int64 userId, String[] permissions)
at Facebook.Web.FacebookWebContext.IsAuthorized(String[] permissions)
at Piedone.FacebookTest.IsAuthorized(String[] permissions) InnerException: