【问题标题】:Facebook C# SDK signed request is null in IsAuthorized()Facebook C# SDK 签名请求在 IsAuthorized() 中为空
【发布时间】:2011-09-08 14:08:05
【问题描述】:

我研究了标题中提到的主题。解决方案说(除了this oneFacebookWebContext.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:

【问题讨论】:

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


    【解决方案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”文件夹。

    【讨论】:

    • 谢谢,但正如我所写,Facebook 应用程序设置已经在 FacebookWebContext 对象中设置(通过实例化时的构造函数)。还是这还不够?
    • 应该够了。您能否也粘贴错误的堆栈跟踪。
    • 这个问题现在已经过时了,因为我遇到了与 OAuth 非常相似的问题 :-)。 facebook.stackoverflow.com/questions/7381370/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多