Я пытаюсь найти хороший способ хранения уникального идентификатора для пользователя в моем приложении. Я использую facebook логин для управления пользователями и имеют класс для пользователя:Facebook Graph API - уникальный идентификатор пользователя?
function FacebookUser(userObj) {
if (userObj) {
this.name = userObj.name;
this.id = userObj.id;
this.picture = userObj.picture.data.url;
this.isLoggedIn = true;
} else {
this.name = 'Login';
this.id = 0;
this.picture = '';
this.isLoggedIn = false;
}
}
В принципе, у меня есть сервис в угловом, который обрабатывает логин Facebook:
.service('facebookService', function() {
this.getFacebookUser = function (callback) {
$.getScript("//connect.facebook.net/en_US/sdk.js", function() {
var appId = "12312312313123";
FB.init({
appId: appId,
status: true,
cookie: true,
xfbml: true,
version: 'v2.4'
});
FB.getLoginStatus(function (response) {
if (response.status == 'connected') {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
} else {
FB.login(function (response) {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
});
}
})
});
}
})
То, что я пытаюсь выяснить, что такое уникальный идентификатор. Я хотел бы просто использовать адрес электронной почты пользователя, поскольку он гарантированно уникален, но не хочет запрашивать дополнительные разрешения. Первоначально я хотел использовать поле id, но неясно, будет ли идентификатор когда-либо изменяться или нет. В документации на facebook они объясняют поле id как таковое:
Идентификатор пользователя этого пользователя. Этот идентификатор уникален для каждого приложения и не может использоваться в разных приложениях. Наше руководство по обновлению предоставляет больше информации о приложении конкретных идентификаторов
В соответствии с этим, ID является уникальным для приложения и не может быть использован в различных приложениях. Тем не менее, я пытаюсь получить немного больше ясности здесь. Если один пользователь входит в приложение сегодня, а затем снова через пару месяцев, будет ли их идентификатор одинаковым (если это одно и то же приложение) или он изменится? Вторичным вопросом было бы, что если/когда я сделаю изменения и получаю новый идентификатор приложения, будет ли ID идентичным или изменяться? Это технически еще одно приложение, просто другая версия. Мое предположение заключается в том, что, поскольку это другое приложение, facebook считает, что это совершенно другое приложение, но я новичок в facebook api и смотрю на экспертов за советом.
Thanks! Я не знал о API бизнес-сопоставления, но, думаю, вы полностью ответили на мой вопрос. – mwilson
Я могу подтвердить, что userId одинаково для одного и того же идентификатора приложения на разных устройствах. –
Ваш первый ответ спас мой день. Я волновался, когда увидел два разных UID в моей БД после регистрации дважды.Я использовал 2 разных идентификатора приложения для моей среды Prod и Dev и думал, что Id может измениться во времени. Но было то, что я создал 2 разных идентификатора приложения в моей инициализации sdk. Возможно, вы не специалист, но вы, конечно же, пригвоздили его! :) – Matias