当用户接受我的应用程序请求时,用户将被重定向到我的应用程序页面,其中包含参数request_ids,该参数是该应用程序请求的请求ID信息。问题是我的应用页面具有[CanvasAuthorize]属性,用于将用户重定向到权限授予对话框,当用户接受它时,它返回应用程序入口点,但在此传输过程中,我丢失了request_ids查询字符串,无法使用请求ID我的代码。
我该如何避免这种情况?有什么建议?
谢谢!
答案 0 :(得分:2)
我通过使用以下javascript自动代码手动将ActionResult重定向到空模板来克服这个问题:
public static string GetCanvasRedirectHtml(string url)
{
var fbApp = new FacebookApp();
string authUrl = string.Format("http://www.facebook.com/dialog/oauth?client_id={0}&redirect_uri={1}&scope={2}", fbApp.AppId, url, requiredAppPermissions);
if (string.IsNullOrEmpty(url))
{
throw new ArgumentNullException("url");
}
return "<html><head>" +
"<script type=\"text/javascript\">\n" +
"top.location = \"" + authUrl + "\";\n" +
"</script>" +
"</head><body></body></html>";
}
这会让我返回access_code,我稍后会交换accessstoken并获得有效的会话。
HTH某人!