CanvasAutorize - диалоговое окно перенаправления в facebook очищает строку запроса request_ids, отправленную, когда пользователь принимает запрос приложения - PullRequest
0 голосов
/ 15 февраля 2011

Когда пользователь принимает мой запрос приложения, он перенаправляется на страницу моего приложения с параметром request_ids, который является информацией идентификатора запроса для этого запроса приложения. Проблема в том, что моя страница приложения имеет атрибут [CanvasAuthorize], который перенаправляет пользователя в диалоговое окно предоставления разрешений, и когда пользователь принимает его, он возвращает точку входа в приложение, но во время этой передачи я теряю строку запроса request_ids и не могу использовать идентификатор запроса в мой код.

Как мне этого избежать? Какие рекомендации?

Спасибо!

1 Ответ

2 голосов
/ 24 февраля 2011

Я преодолел это, перенаправив вручную ActionResult в пустой шаблон со следующим кодом автогена javascript:

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>";
        }

Это вернет мне код доступа, который я позже обменю на маркер доступа и получу действительный сеанс.

HTH кто-то!

...