C# 无法';授权';用户在拥有';批准';应用

C# 无法';授权';用户在拥有';批准';应用,c#,facebook,facebook-c#-sdk,C#,Facebook,Facebook C# Sdk,当facebook用户尝试访问我的facebook应用程序时,他们会收到标准的“批准此应用程序?”提示。用户批准了我的应用程序。然后,当我的代码执行以下操作时,答案始终为false: FacebookApp fbApp = new FacebookApp(); CanvasAuthorizer authorizer = new CanvasAuthorizer(fbApp); authorizer.Perms = "user_about_me"; if (authorizer.Authorize

当facebook用户尝试访问我的facebook应用程序时,他们会收到标准的“批准此应用程序?”提示。用户批准了我的应用程序。然后,当我的代码执行以下操作时,答案始终为false:

FacebookApp fbApp = new FacebookApp();
CanvasAuthorizer authorizer = new CanvasAuthorizer(fbApp);
authorizer.Perms = "user_about_me";
if (authorizer.Authorize())
{
    JsonObject result = (JsonObject)fbApp.Api("/me");

    return Convert.ToInt64((String)result["id"]);
}
else
{
    throw new Exception("Unauthorized Facebook API access.");
}
这将导致authorizer.Authorize()始终为false,并引发“未经授权的Facebook API访问”异常

用户已“批准”我的应用程序。那么为什么这个失败,返回false

我甚至不知道从哪里开始调试这个问题


有什么建议吗?

您是否已使用应用程序ID和应用程序机密配置了
web.config
文件。 如果没有,请将AppId和Secret如下所示:

<configuration>
  <configSections>
    <section name="facebookSettings" type="Facebook.FacebookConfigurationSection" />
  </configSections>
  <facebookSettings appId="{app id}" 
                 appSecret="{app secret}" />
</configuration>

这是IE8的一个cookie问题。检查是否在兼容模式下出现错误。如果没有,则将其添加到所有页面

HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

是的,我的web.config就是这样设置的。此外,当我个人使用自己的facebook帐户访问facebook应用程序时,我没有这个问题:我之前已经使用我的facebook帐户“批准”了该应用程序,并且还被设置为“开发者/管理员”我发现了另一个与我的问题非常相似的问题:一旦我确定这个建议是否有帮助,我会在这里发帖()--这只解决了Cookie问题,它只解决了三台机器/计算机中的一台测试机器。其他两台电脑(我的朋友正在测试应用程序)仍然存在此问题。当我运行IE时,这个问题现在在我的计算机上得到了解决。