编辑:如果你想显示某些内容,而不是要在墙上,让一个绝对定位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