2013-04-14 1 views
0

Я использую DotNetOpenAuth.AspNet для аутентификации Facebook. И все работает хорошо.DotNetOpenAuth Запрос статуса aspNet status_update

Однако мне нужно изменить права доступа к приложениям, поэтому, когда пользователь входит в систему, я должен запросить разрешение status_update. Я изменил Permissions в настройках приложения Facebook, но я не получил обновленное окно входа в мое приложение.

enter image description here

Также я пытался справиться метод OAuthWebSecurity.RegisterFacebookClient вызова с прохождением дополнительного атрибута области видимости данных, но без какого-либо доступа.

Кто-нибудь знает, как запросить дополнительные разрешения Facebook, используя DotNetOpenAuth.AspNet?

EDIT:

Когда я пытаюсь сделать почту, я получил эту ошибку:

(OAuthException - # 200) (# 200) Пользователь не авторизован приложение для выполнения этого действия

И это то, что я получаю, когда я пытаюсь войти в мое приложение:

enter image description here

Нет разрешения status_update.

Спасибо.

ответ

3

На данный момент вы не можете. Глубоко во внутренности DotNetOpenAuth.AspNet есть класс под названием FacebookClient. Внутри класса используется метод, который называется «GetServiceLoginUrl».

Этот метод в версии 4.3.0 указывает на «электронную почту».

Если вы перейдете в репозиторий Nuget preerelease и получите оттуда предварительную версию 4.3.1, класс FacebookClient поставляется с дополнительным параметром в области конструктора. Вы можете добавить разрешения там, и он добавит их в url запроса.

Источник пакет предварительно релиз http://teamcity.dotnetopenauth.net:82/guestAuth/app/nuget/v1/FeedService.svc/

new FacebookClient(appId, secret, new[] {"email","manage_pages"}); 

и вы должны быть хорошо идти.

+0

Привет, Питер, спасибо за ваш ответ. Я уже закодировал новый класс FacebookScopeClient, который наследует от DotNetOpenAuth.AspNet.Clients.OAuth2Client и зарегистрировал его как клиента, и он отлично работает. – Koste

+0

Хорошо. Сейчас я переживаю тот же процесс. –