Я использую parse.com в качестве бэкэнд для приложения, и, хотя руководство по API и краткие руководства по началу работы полезны, я просто не могу получить facebook < -> связь пользователя с работой.Правильный способ связать существующего пользователя с учетной записью facebook
В приложении у меня есть две кнопки входа: один для ввода номера пользователя и пароля, а другой - для входа в систему с помощью facebook. Вход в facebook отлично работает и позволяет пользователям использовать социальные функции приложения. Проблема заключается в том, что они входят в систему только с номером телефона/паролем.
Вот моя кнопка сшивания код:
linkUser(ParseUser.getCurrentUser());
private void linkUser(final ParseUser user) {
List<String> permissions = Arrays.asList("email", Permissions.User.ABOUT_ME);
if (!ParseFacebookUtils.isLinked(user)) {
ParseFacebookUtils.link(user, permissions, this, new SaveCallback() {
@Override
public void done(ParseException ex) {
if (ex == null) {
Log.d("MyApp", "No Exception!!");
if (ParseFacebookUtils.isLinked(user)) {
Log.d("MyApp", "Woohoo, user logged in with Facebook!");
}
} else {
Log.d("MyApp", ex.getMessage());
}
}
});
} else {
Log.d("MyApp", "user already link in with Facebook!");
}
Если я очистить кэш-память приложения, и сделать новую установку, я войти первый фиктивным пользователя я создал в бэкэнде Разбора, а затем нажмите кнопку " ссылку ". Я смотрю на logcat, но никогда не вижу никаких строк журнала, указывающих на то, что пользователь связан или нет .. это как если бы код «done» никогда не срабатывал. Я также вхожу в систему для анализа и просмотра данных fbAuth, чтобы узнать, появляется ли пользователь facebook id ... ничего.
Единственное, что я могу/не могу выполнить rihgt, завершает рабочий процесс auth, который должен находиться в методе onActivityResult. Я положил это в моей вызывающему деятельности (Preferences):
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 11000) {
} else {
ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}
}
Мое понимание функции связи, является то, что вы можете взять обычного пользователя синтаксического анализа, бревенчатый их (номер телефона, адрес электронной почты/пасс, и т.д.), а затем один раз у вас есть кеш-память ParseUser, затем ссылка на facebook с использованием SSO и учетных данных пользователей facebook через приложение facebook или веб-страницу. parsefacebookutils.link затем связывает пользователя facebook с вашим пользователем синтаксического анализа, так что они связаны в конце. Таким образом, ваш обычный пользователь может начать использовать функции facebook. Это верно?
Я действительно ненавижу просить код, но если кто-то использовал эту функцию, вы можете поделиться тем, как вы это сделали, или указать, что я сделал неправильно?
Это все, спасибо! – OneThreeSeven