我创建了一个带有iframe的asp.net facebook应用程序,它用于在网址http://apps.facebook.com/myappname上正确显示,直到我放置代码以在页面上添加权限。我使用facebook.dll来使用facebook.Components.FacebookService类并使用此类检查身份验证令牌等。自从我完成此操作后,应用程序画布页面显示为空。但是,当我在浏览器位置栏中输入实际站点URL时,我将其用作画布URL(例如http://myappname.mydomainname.com),我会看到应用程序请求权限的提示。有人可以指导我做错了吗。
_fbService.ApplicationKey = FACEBOOK_API_KEY;
_fbService.Secret = FACEBOOK_SECRET;
_fbService.IsDesktopApplication = false;
string sessionKey = Session["Facebook_session_key"] as String;
string userId = Session["Facebook_userId"] as String;
// When the user uses the Facebook login page, the redirect back here
// will will have the auth_token in the query params
authToken = Request.QueryString["auth_token"];
// We have already established a session on behalf of this user
if (!String.IsNullOrEmpty(sessionKey) && !String.IsNullOrEmpty(userId))
{
_fbService.SessionKey = sessionKey;
_fbService.uid = Convert.ToInt64(userId);
}
// This will be executed when Facebook login redirects to our page
else if (!String.IsNullOrEmpty(authToken))
{
try
{
_fbService.CreateSession(authToken);
Session["Facebook_session_key"] = _fbService.SessionKey;
Session["Facebook_userId"] = _fbService.uid;
Session["Facebook_session_expires"] = _fbService.SessionExpires;
}
catch (Exception)
{
Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0\");
}
}
// Need to login
else
{
Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0\");
}
facebook.Schema.user usr = _fbService.users.getInfo();
//User usr = _fbService.GetUserInfo();
// string t = string.Format("User Name:{0}, Sex:{1}, Location: {2}", usr.first_name, usr.sex, usr.current_location.city);
GetUsersFriendsList();
// GetUserName(usr);
// SetControlVisibility(_fbService.uid.ToString());
}
答案 0 :(得分:2)
有了这些问题,最好尽早确定您所遇到的问题是由于客户端问题,即JavaScript问题还是服务器端问题。
让我们从客户端故障排除开始:
你说一旦开始使用权限就开始出现问题 - 使用Facebook API,这些主要是使用JavaScript API请求客户端,所以我认为最好从那里开始作为可能的根区域问题。
让我们知道您的发现,我们将从那里进行排查!