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