我有奇怪的事情,因为当我点击Facebook标签播放我的游戏时,验证消息没有出现,但我必须复制我将游戏放在我们的服务器上的游戏URL,并且验证消息出现并且可以验证然后当我点击Facebook标签它运作良好。那有什么不对?
Facebook_login页面
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string host = System.Configuration.ConfigurationManager.AppSettings["host"];
string facebookClientId =
System.Configuration.ConfigurationManager.AppSettings["FacebookClientId"];
string RedirectURL = "http://facebookapp.elarabygroup.com";
if (Request.QueryString["redirectURL"] != null)
{
RedirectURL = Request.QueryString["redirectURL"].ToString();
Session["RedirectURL"] = RedirectURL;
}
Response.Redirect(@"https://graph.facebook.com/oauth/authorize?client_id=" +
facebookClientId + "&redirect_uri=http://" + host +
@"/FBcallback.aspx&scope=publish_stream,offline_access,publish_actions");
}
}
FBcallback页面
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["code"] != null)
{
string facebookClientId = System.Configuration.ConfigurationManager.AppSettings["FacebookClientId"];
string facebookSecret = System.Configuration.ConfigurationManager.AppSettings["FacebookSecret"];
string host = System.Configuration.ConfigurationManager.AppSettings["host"];
string code = Request.QueryString["code"];
var url =
string.Concat("https://graph.facebook.com/oauth/access_token?client_id=" + facebookClientId,"&redirect_uri=http://" + host + "/admin/facebook/auth.aspx","&client_secret=" + facebookSecret,"&code=" + code);
oAuthFacebooks fbAC = new oAuthFacebooks();
string respnse = "";
try
{
fbAC.AccessTokenGet(code);
respnse = fbAC.Token;
}
catch (Exception ex)
{
Response.Redirect("http://x/SiteLogin.aspx?error=" + ex.Message);
}
if (Session["RedirectURL"] != null && Session["RedirectURL"].ToString() != "")
{
Response.Redirect(Session["RedirectURL"].ToString() + "?token=" + respnse + "&source=FB");
}
else
{
Response.Redirect("http://x/SiteLogin.aspx?token=" + respnse);
}
}
else
{
Response.Redirect("http://x/SiteLogin.aspx?error=code not found" +
Request.QueryString["error_reason"].ToString());
}
}
sitelogin页面
if (Request.QueryString["token"] != null)
{
string token = Request.QueryString["token"];
string PostURL = string.Format("https://graph.facebook.com/me?access_token={0}", token);
oAuthFacebooks objFbCall = new oAuthFacebooks();
string JSONInfo = objFbCall.WebRequest(oAuthFacebooks.Method.GET, PostURL, "");
JObject Job = JObject.Parse(JSONInfo);
JToken Jdata = Job.Root;
//added from other soluation
// string code = Request.QueryString["code"];
if (Jdata.HasValues)
{
//added from other soluation
/*string data = FaceBookConnect.Fetch(code, "me");
FaceBookUser faceBookUser = new JavaScriptSerializer().Deserialize<FaceBookUser>(data);*/
string UID = (string)Jdata.SelectToken("id");
string firstname = (string)Jdata.SelectToken("first_name");
string lastname = (string)Jdata.SelectToken("last_name");
string pic = string.Format("https://graph.facebook.com/{0}/picture", UID);
string username = firstname + " " + lastname;
userdata.Attributes.Add("Value", "fb_id="+UID+ "&fb_name="+username+"&fb_img=" + pic);
userdata2.Attributes.Add("Value", "fb_id=" + UID + "&fb_name=" + username + "&fb_img=" + pic);
}
}
else
{ Response.Write(" xx"); }
}
答案 0 :(得分:0)
实际上这个问题并不是很清楚......我正在黑暗中拍摄。
以下是facebook登录流程的方式..
连接。此人已登录Facebook,并已登录
你的应用。
(*我认为当你从facebook标签转到你的应用程序时就是这种情况。每当用户通过facebook访问任何应用程序时,如果用户登录fb并且用户从另一个用户获取应用程序,则他们会自动连接浏览器选项卡。您将无法连接,但将处于以下描述的not_authorised状态。如果用户未获得授权,则需要再次登录您的应用程序*)
NOT_AUTHORIZED。该人登录Facebook,但尚未登录
登录到您的应用。
(我认为通过您在浏览器中指定的网址而不是通过Facebook标签转到您的应用时就是这种情况
未知。此人未登录Facebook,因此您不知道是否 他们已登录您的应用。
以下是documentation了解详情...
PS:确保该图片上指定的网址与您的应用程序上的网址完全相同。