在IsAuthorized()中,Facebook C#SDK签名请求为空

时间:2011-09-08 14:08:06

标签: c# asp.net-mvc facebook facebook-c#-sdk

我研究了标题中提到的主题。解决方案说(除了this one"Precondition failed: !string.IsNullOrEmpty(settings.AppId)"抛出的FacebookWebContext.IsAuthorized()异常是由于没有设置签名请求引起的,可以从查询字符串中获取。

我正在开发一个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:

1 个答案:

答案 0 :(得分:1)

确保在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”文件夹。