C# 无法';授权';用户在拥有';批准';应用
当facebook用户尝试访问我的facebook应用程序时,他们会收到标准的“批准此应用程序?”提示。用户批准了我的应用程序。然后,当我的代码执行以下操作时,答案始终为false: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
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时,这个问题现在在我的计算机上得到了解决。