Facebook c# SDK签名请求在IsAuthorized()中为空
本文关键字:IsAuthorized SDK 请求 Facebook | 更新日期: 2023-09-27 18:08:04
我对标题中提到的主题进行了研究。解决方案说(除了这个)FacebookWebContext.IsAuthorized()
抛出的"Precondition failed: !string.IsNullOrEmpty(settings.AppId)"
异常是由于没有设置签名请求引起的,这可以从查询字符串中获得。
我正在开发ASP。NET MVC网站中我要实现的Facebook Connect认证。身份验证部分工作正常,但如果我尝试检查用户给应用程序的权限(无论是与HasPermissions()
或IsAuthorized()
),我得到这个错误。
FacebookWebContext
得到正确初始化与应用程序设置。据我所知,signed_request
只适用于画布应用程序,还是我错了?
在普通网站中,用户通过身份验证后如何检查权限?
提前感谢!
编辑:下面是抛出的异常的详细信息:
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:
确保在web.config中设置facebook设置
<configSections>
<section type="Facebook.FacebookConfigurationSection, Facebook" name="facebookSettings" allowLocation="true" allowDefinition="Everywhere" />
</configSections>
<facebookSettings appId = "{app_id}" appSecret = "{app_secret}"/>
sdk需要知道app id和app secret以便提取由Facebook Javascript sdk设置的信息。
您可能还想查看源代码中的"Samples"文件夹