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.