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