編輯:如果你想顯示某些內容,而不是要在牆上,讓一個絕對定位div
在您隱藏的內容之上,並在喜歡時隱藏div
。
如果您使用C#ASP.Net,我從來沒有使用這種技術的問題。您可以檢查signed_request
並使用JObject
解碼,然後根據需要重定向。
檢查了這一點:How to decode OAuth 2.0 for Canvas signed_request in C#?
你需要下載和參考JSON.Net從這裏:Json.NET
在頁面加載:
if (Request.Form["signed_request"] != null)
{
var result = (IDictionary)DecodePayload(Request.Form["signed_request"].Split('.')[1]);
JObject liked = JObject.Parse(result["page"].ToString());
if (liked["liked"].ToString().Trim().ToLower() == "true")
{
//do redirection here
}
}
這裏的解碼有效載荷功能:
public Dictionary<string, string> DecodePayload(string payload)
{
var 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);
var jObject = JObject.Parse(json);
var parameters = new Dictionary<string, string>();
parameters.Add("user_id", (string)jObject["user_id"] ?? "");
parameters.Add("oauth_token", (string)jObject["oauth_token"] ?? "");
var expires = ((long?)jObject["expires"] ?? 0);
parameters.Add("expires", expires > 0 ? expires.ToString() : "");
parameters.Add("profile_id", (string)jObject["profile_id"] ?? "");
parameters.Add("page", jObject["page"].ToString() ?? "");
return parameters;
}
這會將用戶重定向到另一個選項卡?或者它只是重定向iframe內容?對不起,我不懂C#ASP的東西,所以我想確保這是我開始挖掘新語言之前的答案:-P – cfrydlewicz
您必須使用您希望移到的選項卡的完整URL ,只需手動導航到瀏覽器即可從瀏覽器中抓取它。 – AdmanStrong