Не могу понять, как получить токен доступа с помощью facebook c # sdk - PullRequest
1 голос
/ 03 июня 2011

В настоящее время я пишу приложение для Facebook, которое работает на вкладке страницы.Я пишу это как простое приложение Web Forms в C #, используя последнюю версию C # SDK, взятую из NuGet.Вкладка главной страницы работает нормально.Я получаю всю необходимую информацию от FacebookWebContext.Current.SignedRequest, и я в порядке.Сейчас я пытаюсь написать страницу, которую администратор страницы использовал бы для настройки приложения, так что это страница, которая будет находиться под «Редактировать URL» в настройках приложения.

Все, что я действительно хочудля этого нужно получить идентификатор текущего зарегистрированного пользователя и определить, является ли он администратором рассматриваемой страницы.

Я делаю это:

var client = new FacebookClient();
dynamic me = client.Get("me");

в Page_Load и получаюследующее исключение:

(OAuthException) An active access token must be used to query information about the current user.

Я пробовал кучу вещей, чтобы получить токен доступа, но, похоже, я не знаю, что я делаю неправильно.Есть ли простой способ сделать это?

Обновление: В какой-то момент я обнаружил, что у меня есть ссылка на старый JS SDK на главной странице, и это вызывает проблему,(См. здесь ).Удаление этого привело меня к тому, что я обычно мог видеть, был ли пользователь на самом деле вошел в Facebook.

Ответы [ 2 ]

3 голосов
/ 03 июня 2011

Попробуйте это:

var fbContext = FacebookWebContext.Current;
if (fbContext.IsAuthenticated())
{
    var client = new FacebookClient(fbContext.AccessToken);
    dynamic me = client.Get("me");
}
1 голос
/ 25 июля 2011

Насколько я понимаю, вход в Facebook не означает FacebookWebcontext.Current.isAuthenticated() == true.Facebook хочет убедиться, что пользователь авторизовал приложение.Так что вам следует перенаправить страницу на страницу диалога авторизации facebook (https://www.facebook.com/dialog/oauth?) с необходимыми разрешениями. Facebook определит, было ли приложение авторизовано пользователем, и перенаправит на redirect_uri с использованием нового доступного access_token.

...