FB c # SDK разрешения? - PullRequest
       2

FB c # SDK разрешения?

0 голосов
/ 18 сентября 2011

Я разрабатываю сайт FB MVC3 с использованием FB c # SDK.

В моем контроллере есть эта строка приватная константная строка ExtendedPermissions = "user_about_me, publish_stream";

в методе входа в систему эта строка: if (fbWebContext.IsAuthorized (ExtendedPermissions.Split (',')))

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

bool isAuthorized = IsAuthenticated (); возвращает true, поэтому пользователь авторизован. Затем он проверяет разрешения, начиная с этого вызова var currentPerms = HasPermissions (AccessToken, Settings.AppId, UserId, разрешения);

возвращает единственную запись со значением «установлен». Это не имеет смысла, как вы увидите позже. Продолжайте читать ...

Затем он проверяет переданные разрешения на соответствие разрешениям FB следующим образом: foreach (вар пермь в разрешениях) { if (! currentPerms.Contains (perm)) { вернуть ложь; } } конечно, он возвращает false, как и должно, потому что разрешения user_about_me и publish_stream отсутствуют в разрешениях FB. Тем не менее, я иду в приложения в FB, и он показывает это

Доступ к моей основной информации Включает в себя имя, фотографию профиля, пол, сети, идентификатор пользователя, список друзей и любую другую информацию, которой я поделился со всеми.

Итак, мой вопрос: Что значит «установлен»? и не должен ли он вернуть user_about_me?

так не должна строка выше var currentPerms = HasPermissions (AccessToken, Settings.AppId, UserId, разрешения);

вернуть "user_about_me". Тем не менее, он возвращает только слово «установлен»

Так что я знаю, почему он терпит неудачу, но логика подсказывает мне, что он не должен потерпеть неудачу. Это как-то связано с доступом пользователей к FB.

Кто-нибудь еще видел это или получил ответ?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 31 октября 2011

У меня была такая же проблема, и она была решена, так как не был установлен элемент viewbag.

Проверьте разрешения / область, передаваемые в facebook.

Мне пришлось добавить

ViewBag.ExtendedPermissions = ExtendedPermissions;

для того, чтобы он отображался в javascript и passthrough.

1 голос
/ 27 сентября 2011

Я пробовал FB C # SDK 5.2.1, и у меня была проблема с HasPermission. Но искал здесь и нашел ваш очень актуальный вопрос. FacebookWebContext.Current.HasPermission ("user_about_me") в моем случае возвращает false. Но FacebookWebContext.Current.IsAuthorized ("user_about_me") возвращает true.

Я пытался с

if (FacebookWebContext.Current.IsAuthorized("publish_stream"))

и мне он возвращает истину.

Я также попробовал ваш метод split, чтобы проверить, можно ли проверять сразу несколько разрешений, и он также возвращал true.

Подсказка : попробуйте последнюю версию SDK и попробуйте использовать FacebookWebContext.Current вместо "fbWebContext" (что заставляет меня думать, что что-то не так).

...