2
我想在Kentico中設置頁面門。我應該着手使用Web部件還是模塊?我已經玩過這兩種遊戲,所以我們知道如何使用它們進行基本開發。kentico中的facebook頁面門
我想在Kentico中設置頁面門。我應該着手使用Web部件還是模塊?我已經玩過這兩種遊戲,所以我們知道如何使用它們進行基本開發。kentico中的facebook頁面門
我以前用頁面模板做過。其實很簡單。 Facebook有一個參數'signed_request',它是base64編碼的,它發回(如果你在Facebook上有一個應用程序設置)。你需要解碼它並使用json查找'喜歡'變量,這應該是true或false。
我有一個2 CMSEditableRegion的頁面上,一個如果用戶喜歡的頁面,一個如果用戶還沒有(還;)喜歡的頁面。
protected CMSEditableRegion likedRegion;
protected CMSEditableRegion notLikedRegion;
protected bool ValidateSignedRequest(string signed_request)
{
try
{
string payload = signed_request.Split('.')[1];
UTF8Encoding encoding = new UTF8Encoding();
var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/');
var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '='));
var json = encoding.GetString(base64JsonArray);
return json.IndexOf("\"liked\":true") != -1;
}
catch (Exception ex)
{
return false;
}
}
private bool parsePageSignedRequest()
{
if (Request["signed_request"] != null)
{
return ValidateSignedRequest(Request["signed_request"]);
}
return false;
}
protected void Page_Load(object sender, EventArgs e)
{
if (CMS.CMSHelper.CMSContext.ViewMode == CMS.PortalEngine.ViewModeEnum.LiveSite)
{
if (parsePageSignedRequest())
{
notLikedRegion.Visible = false;
likedRegion.Visible = true;
}
else
{
notLikedRegion.Visible = true;
likedRegion.Visible = false;
}
}
}