Auth Session всегда нулевой

Я безуспешно использовал разные методы для установки простого приложения Iframe, которое ранее работало со старым 4.x Facebook C# SDK. Я использую обычное веб-приложение NET 4.0, я не использую MVC. В конфигурации моего приложения FB я включил все новые методы (например, oAuth2), но отключил опции, помеченные как устаревшие.

Сеанс Authorizer также всегда равен null, так как он также является поклонником зарегистрированного пользователя моей страницы.

Authorizer auth = new Authorizer(FacebookContext.Current.AppId, FacebookContext.Current.AppSecret, new HttpContextWrapper(Context));
auth.Perms = "user_about_me,user_birthday,user_location";

if (auth.Session != null && auth.Session.AccessToken != null)
    fbApp = new FacebookClient(auth.Session.AccessToken);           

if(auth.IsAuthorized())
        //show the app

Возможно, я упустил что-то глупое, но я не могу заставить это работать. Я думаю, что-то связано с cookie, разница в моем SDK 4.x web.config заключается в том, что cookieSupport="false" не поддерживается в facebookSettings... Заранее спасибо людям, которые могут мне помочь:) Джо

1 ответ

В версии 5 файл cookie используется, если он присутствует в запросе, в противном случае он будет искать другие параметры запроса, такие как signature_request. Вы не должны использовать cookie-файл с приложением Canvas, так как вы столкнетесь с междоменными проблемами в определенных браузерах.

Убедитесь, что у вас включен POST для Canvas.

Вместо использования Authorizer попробуйте класс CanvasAuthorizer (5.0.3) или класс FacebookCanvasAuthorizer (последний источник).

Создайте это так:

var auth = new CanvasAuthorizer { Perms = "user_about_me,user_birthday,user_location" };

Вам не нужно передавать appId или appSecret в конструктор, так как он будет взят из вашего раздела Web.config.

Другие вопросы по тегам