我已经建立了使用C#SDK几Facebook应用程序。 并使用以下代码来检查用户是否已经喜欢的风扇页面并显示内容,以反映这一点。

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["SignedRequest"] != null)
    {
        signedRequest = Session["SignedRequest"].ToString();
    }
    else
    {
        signedRequest = Request.Form["signed_request"];
    }

    if (!string.IsNullOrEmpty(signedRequest))
    {
        dynamic SignedRequestData;
        var DecodedSignedRequest = FacebookWebContext.Current.SignedRequest.Data;
        SignedRequestData = DecodedSignedRequest

        var RawRequestData = (IDictionary<string, object>)SignedRequestData;

        foreach (KeyValuePair<string, object> paird in RawRequestData)
        {
            Response.Write("key =" + paird.Key.ToString() + " value =" + paird.Value.ToString() + "<br/>");

        }

        if (RawRequestData.ContainsKey("page"))
        {
            Facebook.JsonObject RawPageData = (Facebook.JsonObject)RawRequestData["page"];

            if (RawPageData.ContainsKey("liked"))
            {
                if (bool.Parse(RawPageData["liked"].ToString()))
                {
                    LikedContent.Visible = true;

                    if (!IsPostBack)
                    {
                        PageSetup();
                    }
                }
                else
                {
                    UnlikedContent.Visible = true;
                }
            }
            else
            {
                UnlikedContent.Visible = true;
            }
        }
        else
        {
            DefaultContent.Visible = true;
        }
    }
    else
    {
        DefaultContent.Visible = true;
    }
}

这里的问题是,如果我对应用程序的多个页面,我得到跨域的问题。 可以使用在gloabl.asac.cs文件中的P3P头的即很容易地解决这个问题。 这一问题却仍然在Safari。

现在,C#SDK的当前版本6建议使用Facebook的JavaScript SDK调用的Open Graph并检查用户喜欢的网页,然后把它传递给后面的代码我是想知道究竟是建筑的最佳实践Facebook粉丝页面标签的应用程序?

当曾经使用JavaScript SDK我访问用户的信息,我收到一个弹出框授权的应用程序。 我不希望这样。 有没有办法解决这?

干杯