Мне кажется, этот вопрос похож на мой предыдущий .Используя последний C # Facebook SDK в .NET 4, я получаю исключение с сообщением «Требуется идентификатор клиента» со следующим кодом в последней строке:
var app = new DefaultFacebookApplication();
app.AppId = "appId";
app.AppSecret = "secret";
var fb = new FacebookWebContext(app);
fb.IsAuthenticated();
Идентификатор приложения и секретный код установлены правильно.Трассировка стека исключительной ситуации: System.Exception произошла
Message=ClientID required. Source=Facebook StackTrace:
at Facebook.FacebookOAuthClient.BuildExchangeCodeForAccessTokenParameters(IDictionary`2 parameters, String& name, String& path)
at Facebook.FacebookOAuthClient.ExchangeCodeForAccessToken(String code, IDictionary`2 parameters)
at Facebook.FacebookSession.get_AccessToken()
at Facebook.FacebookSession.get_Expires()
at Facebook.Web.FacebookWebContext.IsAuthenticated()
at Piedone.FacebookTest.Authorize() InnerException:
На стороне клиента я использую JS SDK, инициализированный следующим образом:
FB.init({
appId: appId,
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true, // parse XFBML
oauth: true // enable OAuth 2.0
});
Пользователинадлежащим образом регистрируется с помощью метода JS login (), поскольку запускается предупреждение в следующем фрагменте кода:
FB.login(function (response) {
if (response.authResponse) {
alert("logged in");
} else {
alert('User cancelled login or did not fully authorize.');
}
}, { scope: scope });
В настройках приложения на Facebook как «Принудительное использование секретного имени входа для вызова OAuth, так идля auth.login "и" токен зашифрованного доступа "включены.Насколько я знаю, все это должно позволить использовать аутентификацию OAuth 2.У кого-нибудь есть идея, что я делаю не так?В этих нескольких строках кода действительно не может быть никаких ошибок ...
Заранее благодарен за любую помощь!
Редактировать: Свойство AccessToken FacebookWebContext вызываетта же самая ошибка и HttpContext.CurrentNotification делает:
CurrentNotification '(_facebookWebContextCache.HttpContext).CurrentNotification' threw an exception of type 'System.PlatformNotSupportedException' System.Web.RequestNotification {System.PlatformNotSupportedException}
This operation requires IIS integrated pipeline mode.
Так как я должен запустить программу из Visual Studio с ее сервером разработки (как я в настоящее время разрабатываю приложение), с этим ничего нельзя поделатьпоследнее исключение, я полагаю.На самом деле я также пытался с IIS Express Webmatrix, но проблема сохраняется.Также интересно, что в FacebookWebContext также правильно установлены настройки (идентификатор приложения, секрет), идентификатор пользователя и подписанный запрос ...
Редактировать 2: Я также получаю ту же ошибку при использовании источника SDK.Похоже, что AccessToken и в свойстве Session свойство Expires выдают исключение.Я не знаю, связано ли это с проблемой httpcontext выше.