Страница холста Facebook на Java - дополнительная авторизация приложения? - PullRequest
1 голос
/ 29 января 2010

У меня есть приложение FBML для Facebook на Java. Я пытаюсь получить текущий идентификатор пользователя, используя facebook java api в контроллере, но не заставляя каждого пользователя получать доступ к большому приложению через facebook.com/login.php

Проблема в том, что я не понимаю рабочий процесс приложения на Facebook. Чтобы получить идентификатор пользователя, мне нужно предоставить fb sessionid. Чтобы получить сеанс, мне кажется, что я должен перенаправить всех пользователей на http://www.facebook.com/login.php?api_key=..., который запросит у них дополнительные разрешения. Дело в том, что я не хочу заставлять всех давать мне дополнительные разрешения или входить в систему. Гости также должны иметь возможность использовать приложение с ограниченными функциональными возможностями.

Как мне отделить гостей и тех, кто не давал мне разрешения от остальных, не перенаправляя всех без сеанса на страницу разрешений все время?

Спасибо.

1 Ответ

1 голос
/ 29 января 2010

Я ничего не знаю о деталях Java API, но я могу рассказать вам о двух способах получения идентификатора пользователя. Во-первых, как вы знаете, это требовать от пользователя аутентификации приложения. Вам не обязательно перенаправлять пользователя куда-либо, чтобы сделать это, если вы используете FBML и поместите requirelogin="1" в некоторые ссылки HTML или элементы формы, и на странице появится всплывающее окно «Авторизовать это приложение» появляются. После авторизации приложения вы получите параметр fb_sig_user, передаваемый в каждом запросе.

Во-вторых, вы можете получить идентификатор пользователя посетителя, переданного вам в другом параметре без авторизации вашего приложения. Это происходит в виде fb_sig_canvas_user, и вы получите его, когда пользователь каким-либо образом взаимодействует с вашим приложением. Это может быть нажатие на ссылку на странице холста FBML или нажатие на новостной канал, опубликованный другим пользователем. fb_sig_canvas_user позволяет идентифицировать пользователя, но не совершать никаких вызовов API от его имени. Вы по-прежнему можете предлагать им публиковать истории и отправлять приглашения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...