1

我有奇怪的事情,当我点击 Facebook 选项卡来玩我的游戏时,身份验证消息没有出现,但我必须复制我将游戏放在我们的服务器上的游戏 URL,并且身份验证消息出现并且可以在我点击时进行身份验证Facebook标签它运作良好。那么有什么问题呢?

在此处输入图像描述

Facebook_登录页面

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");
    }
}

FB回调页面

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());
    }

}

网站登录页面

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"); }
}
4

1 回答 1

0

其实这个问题不是很清楚..我在黑暗中拍摄。

以下是facebook登录流程..

  • 连接的。此人已登录 Facebook,并已登录您的应用程序。
    (*我认为当您从 facebook 选项卡转到您的应用程序时就是这种情况。每当用户通过 facebook 使用任何应用程序时,如果用户登录到 fb 并且用户从另一个浏览器选项卡获取您的应用程序,它们会自动连接。您不会连接,但会处于如下所述的 not_authorised 状态。如果用户未获得授权,他将需要再次登录您的应用程序*)

  • 未经授权。此人已登录 Facebook,但尚未登录您的应用。
    我认为当您通过您在浏览器中指定的网址而不是通过 facebook 选项卡进入您的应用程序时,您就是这种情况

  • 未知。此人未登录 Facebook,因此您不知道他们是否已登录您的应用。

这是有关更多详细信息的文档...

PS:确保该图像上指定的 URL 与您的应用程序上的完全相同。

于 2013-09-18T12:55:27.520 回答