私は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ヘッダーを使用すると、これを非常に簡単に修正できます。ただし、問題はまだサファリに残っています。
現在のバージョン6のc#sdkでは、facebook javascript sdkを使用して開いているグラフを呼び出し、ユーザーがページを気に入っていることを確認してから、そのページを背後のコードに渡すことを推奨しています。 Facebookのファンページタブアプリ?
javascript sdkを使用してユーザー情報にアクセスするたびに、アプリを承認するためのポップアップボックスが表示されます。私はこれを望んでいません。これを回避する方法はありますか?
乾杯