CanvasAutorize - 重定向到Facebook权限对话框清除用户接受应用程序请求时发送的request_ids查询字符串

时间:2011-02-15 15:45:02

标签: asp.net-mvc facebook facebook-c#-sdk

当用户接受我的应用程序请求时,用户将被重定向到我的应用程序页面,其中包含参数request_ids,该参数是该应用程序请求的请求ID信息。问题是我的应用页面具有[CanvasAuthorize]属性,用于将用户重定向到权限授予对话框,当用户接受它时,它返回应用程序入口点,但在此传输过程中,我丢失了request_ids查询字符串,无法使用请求ID我的代码。

我该如何避免这种情况?有什么建议?

谢谢!

1 个答案:

答案 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某人!