DotNetOpenAuth и Facebook
Я пытаюсь использовать DotNetOpenAuth для некоторых функций веб-единого знака.
У меня есть образцы, работающие для Google и Yahoo, но я борюсь с Facebook.
Я использую CTP (4.0.0.11165) и следую примеру этот вопрос SO.
Однако я получаю ошибку выполнения в строке:
IAuthorizationState authorization = client.ProcessUserAuthorization();
Ошибка:
Не удалось получить токен доступа. Сервер авторизации сообщает о причине: (неизвестно)
Любые идеи?
Ответы
Ответ 1
Сборка, которую вы используете, несовместима с Facebook, потому что Facebook использует более старую версию OAuth 2.0. Вы должны использовать более ранний CTP (один с версией v3.5) для работы с Facebook. Сожалею. Он воняет использовать OAuth 2.0, когда все находятся на другом проекте незавершенной спецификации.
Ответ 2
Я столкнулся с подобной проблемой при использовании https://github.com/baio/open-mvc.
Я решил это, снова создав проект DotNetOpenAuth.ApplicationBlock для последнего CTP (4.0.0.11165) с DotNetOpenAuth версии 3.5.0.10357, загруженный из open-mvc repo.
И он отлично работал для facebook.
Я все еще тестирую его для других IDP
Ответ 3
Думаю, вам нужно добавить
client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("App_Secret");