当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并且抛出“Unauthorized Facebook API Access”异常。
用户已“批准”我的应用。那么为什么会失败,返回假?
我甚至不知道从哪里开始尝试调试此问题。
有什么建议吗?
答案 0 :(得分:0)
您是否已使用App ID和App Secret配置了web.config
文件。
如果不是这样的AppId和秘密:
<configuration>
<configSections>
<section name="facebookSettings" type="Facebook.FacebookConfigurationSection" />
</configSections>
<facebookSettings appId="{app id}"
appSecret="{app secret}" />
</configuration>
答案 1 :(得分:0)
这是IE8的cookie问题。检查是否在兼容模式下出现错误。如果没有,那么将其添加到所有页面
HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");